Category: Open Source Software & Freeware

  • การทำแผ่นดีวีดี linux mint ฉบับติดตั้งโปรแกรมเพิ่มแล้ว

    ผมแจกฟรีแผ่น DVD linux mint 17 ฉบับติดตั้งโปรแกรมเพิ่ม ที่ห้องโถงอาคารศูนย์คอมพิวเตอร์ ผมก็คิดว่าน่าจะนำความรู้มาเผยแพร่ไว้ตรงนี้ด้วย ลองอ่านดูนะครับ

    free-linuxmint-17-psu-cc-32bit

    เริ่มต้น ผมก็ไปเอาไฟล์ linuxmint-17-mate-dvd-32bit.iso จากเว็บไซต์ https://licensing.psu.ac.th/linux-mint-17-qiana-released/ ซึ่งไฟล์ที่วางไว้ในเว็บไซต์นี้ก็ไป download มาจากของแท้ที่เมืองนอกนะครับ นำมาติดตั้งเป็น Virtual Machine ในโปรแกรม Oracle VM VirtualBox โดยสร้าง username คือ mint password คือ mint และตั้งให้ auto login

    จากนั้นก็ปรับแต่งการอัปเดตเวอร์ชั่นให้อัปเดตจากเซิร์ฟเวอร์ในมหาวิทยาลัย (ในเมืองไทย) โดยการแก้ไขที่ไฟล์ official-package-repositories.list ด้วยคำสั่งดังนี้
    sudo vi /etc/apt/sources.list.d/official-package-repositories.list
    โดยเปลี่ยน 2 แห่ง คือ
    1.เปลี่ยนจาก archive.ubuntu.com เป็น th.archive.ubuntu.com
    2.เปลี่ยนจาก packages.linumint.com เป็น mirrors.psu.ac.th/linuxmint-packages

    ต่อไปก็ตั้งค่า time zone ดังนี้
    Menu > Administration > Time and Date > Click to make changes
    Time zone: Asia/Bangkok

    ต้องการให้ผู้ได้รับแผ่นดีวีดีนี้ไปใช้งานได้สะดวก จึงเพิ่มคำสั่งนี้เพื่อให้ไม่ต้องถาม password ทุกครั้งที่จะเพิ่มโปรแกรม
    sudo sh -c “echo ‘mint ALL=NOPASSWD: ALL’ >> /etc/sudoers”

    ผู้ใช้งานส่วนใหญ่จะใช้ฟอนต์ภาษาไทย TH SarabanPSK ผมก็ช่วยลงให้ซะเลย
    sudo wget ftp://ftp.psu.ac.th/pub/thaifonts/sipa-fonts/*ttf -P /usr/share/fonts/truetype/thai

    ติดตั้งโปรแกรมต่างๆเพิ่มดังนี้
    สำหรับแสดงรายชื่อ hardware
    sudo apt-get install lshw-gtk
    สำหรับตรวจเช็คสถานะ LAN card
    sudo apt-get install ethtool
    สำหรับดึงข้อมูลเว็บเพจมาดำเนินการ
    sudo apt-get install curl
    สำหรับใช้งานเบราว์เซอร์ google chrome
    sudo touch /etc/default/google-chrome
    แล้วไป download จากเว็บไซต์ของ google อาจทำด้วยคำสั่งข้างล่างนี้

    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
    sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' 
    sudo apt-get update 
    sudo apt-get install google-chrome-stable

    ติดตั้งโปรแกรมต่างๆ ผ่านทาง Menu > Software Sources
    1. Tuxmath  : เกมส์คิดเลขเร็ว
    2. Tuxpaint  : เด็กหัดใช้เมาส์วาดภาพและตัวปั้มหมึก
    3. Shutter  : screen capture tool
    4. RecordMyDesktop and gtk-recordmydesktop  : บันทึกหน้าจอเป็นวิดีโอ
    5. winff  : แปลงชนิดไฟล์ของไฟล์เสียง
    6. audacity  : ตัดหรือต่อไฟล์เสียง
    7. gparted  : สร้างหรือเปลี่ยนแปลง disk partition
    8. openshot  : ตัดหรือต่อวิดีโอ ไฟล์เสียง เพื่อทำเป็นวิดีโอ
    9. libavcodec-extra-54  :  เพื่อให้ใช้ codec ได้มากชนิด
    10. filezilla  :  โปรแกรม ftp/ftps/sftp/ client
    11. inkscape :  โปรแกรมทำสื่อสิ่งพิมพ์ จัด art work หน้ากระดาษ (แทน ilustrator)

    ติดตั้งโปรแกรม ffDiaporama ต้องใช้ command line เพื่อเอาเวอร์ชั่นล่าสุด
    12.ffdiaporama  : โปรแกรมนำไฟล์รูปภาพมาจัดทำเป็น Movie พรีเซ็นเตชั่นมีเพลงประกอบได้
    sudo add-apt-repository ppa:ffdiaporamateam/stable
    sudo apt-get update
    sudo apt-get install ffdiaporama
    sudo apt-get install ffdiaporama-texturemate
    sudo apt-get install ffdiaporama-openclipart

    ติดตั้งโปรแกรมที่ต้องใช้ ผ่านทาง Menu > Package Manager
    1. frei0r-plugins
    2. frei0r-plugins-doc

    สร้าง shortcut icon ที่ desktop
    1. TV (ดูทีวีฟรี)
    2. Tux Math
    3. Tux Paint
    4. Google Chrome
    5. version.txt

    ติดตั้ง shell script สำหรับทำงานเฉพาะอย่าง
    1. hardware-list.sh
    2. myjob.sh
    3. nic-led.sh
    และทุกไฟล์ใส่ ได้ set ค่า flag เป็น executable

    ตอนนี้ก็มาถึงความต้องการโปรแกรมที่ใช้ในการทำแผ่นดีวีดีขึ้นมาใหม่ เรียกว่า remastersys โดยติดตั้งตามคำสั่งดังนี้
    wget -N -P /tmp http://ftp.psu.ac.th/pub/psu-remastersys/psu-remastersys.tgz
    tar -zxpvf /tmp/psu-remastersys.tgz -C /tmp
    cd /tmp/psu-remastersys
    sudo sh install-psu-remastersys.sh
    wget -O – http://www.remastersys.com/ubuntu/remastersys.gpg.key | sudo apt-key add –
    แก้ไขค่า option ให้เหมาะสม
    sudo vi /etc/remastersys.conf
    ================================
    LIVEUSER=”mint”
    LIVECDLABEL=”Linux Mint 17 PSU CC”
    CUSTOMISO=”linuxmint-17-psu-cc-32bit.iso”
    BACKUPSHOWINSTALL=”1″
    ================================

    แล้วก็มาถึงขั้นตอนสุดท้าย คือ สั่งสร้าง linuxmint-17-psu-cc-32bit.iso ดังนี้
    เข้าไปที่ Menu > Administration > Remastersys
    แล้วก็รอสัก 15 นาที
    จากนั้นให้เข้าไปเอาไฟล์ไปใส่ใน ftp server
    เข้าไปที่ Menu > Terminal
    cd /home/remastersys/remastersys/
    scp linuxmint-17-psu-cc-32bit.iso user@your_ftp_server

    ทั้งหมดก็มีเรื่องราวประมาณนี้ครับ ขอแถมสักนิดว่า หากจะทำเป็นแผ่นที่บูตแล้วแสดง presentation ก็ให้นำไฟล์ไปวางไว้ใน /home/mint/.config/autostart/
    เช่น
    mint@mint-PSU ~ $ ls -l /home/mint/.config/autostart/
    total 12
    -rw-r–r– 1 mint mint  88 มิ.ย.   5 13:23 myjob.desktop
    -rw-r–r– 1 mint mint 487 มิ.ย.   5 13:23 myjob.sh

    mint@mint-PSU ~ $ cat /home/mint/.config/autostart/myjob.desktop
    [Desktop Entry]
    Type=Application
    Name=myjob
    Exec=/home/mint/.config/autostart/myjob.sh

    mint@mint-PSU ~ $ cat /home/mint/.config/autostart/myjob.sh
    #!/bin/bash
    sleep 3
    SOURCE_FILE=”prstart.sh”
    TEMP1=”/tmp/myjob-temp1.$$”
    wget http://ftp.psu.ac.th/pub/custom/${SOURCE_FILE} -O ${TEMP1}
    if [ -s ${TEMP1} ] ; then
    exec sh ${TEMP1}
    fi

    คิดว่าท่านจะสามารถอ่านและทำได้ครับ ขอบคุณครับ

  • การทดสอบประสิทธิภาพ Web Server ประเภท Static Page : Apache2 vs Lighttpd บนเครื่อง Ubuntu 14.04 LTS

    เครื่องมือในการทดสอบ
    Web Server OS : Ubuntu 14.04 LTS
    Client OS : Windows 8.1
    Software : Apache Jmeter 2.11

    Environment :
    Web Server
    Ubuntu Server (Oracle VM VirtualBox)
    Intel Haswell 1.6GHz (2.30GHz) 4 core RAM 512G
    Client
    Windows 8.1 (Physical Notebook)
    Intel Haswell 1.6GHz (2.30GHz) Intel Haswell 4 core RAM 8G
    – รันอยู่บนเครื่องเดียวกัน
    – ใช้ค่า Default ไม่มีการ Tuning เพิ่มเติม

    วิธีการทดสอบ

    1. ทำการตั้งค่า Apache ให้อยู่คนละ Port กับ Lighttpd2014-05-23_063514

    2. ทำการสร้าง Static Page โดยมีตำแหน่ง และ HTML Code (index.html) ดังนี้

    Apache : /var/www/html/index.html
    สำหรับ Apache ให้ rename ไฟล์เดิมก่อนเนื่องจากมีไฟล์อยู่แล้วด้วยคำสั่งดังนี้

    sudo mv /var/www/html/index.html /var/www/html/index.html_bak
    

    Lighttpd : /var/www/index.html

    <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>Webserver test</title>
    </head>
    <body>
    This is a webserver test page.
    </body>
    </html>

    3. เปิดโปรแกรม Jmeter ทำการ Add Thread Group, HTTP Request, View Results Tree และ Graph Results
    2014-05-23_063658

    4. ทำการทดสอบโดยชี้ไปที่ Web Site ของ Web Server ที่ต้องการ โดยมีตัวอย่างดังรูป
    (จะสังเกตุว่ามีการตั้งค่า Timeout = 1500 ms เพื่อป้องกันโปรแกรมค้าง เนื่องจาก Web Server ไม่ยอมตอบ)
    2014-05-23_105637

    *หมายเหตุ ระหว่างรัน Test สามารถตรวจสอบการทำงานของเครื่อง Web Server โดยติดตั้งโปรแกรมชื่อ htop ดังนี้

    sudo apt-get install -y htop
    

    พิมพ์คำสั่ง htop จะปรากฎหน้าจอดังรูป2014-05-23_065732

    การตั้งค่าทดสอบ

    Number of Threads (users) : 500,1000,2000,2500,3000
    Ramp-Up Period (in seconds) : 1
    Loop Count : 1

    ตัวอย่างการทดสอบ

    จำนวน Users ที่เปิด Page ไม่สำเร็จ

    Number of Threads (users) 500 1000 2000 2500 3000
    Apache2 0 28 424 2232 Jmeter Hang
    Lighttpd 0 0 3 1418 Jmeter Hang

    ซึ่งการทดสอบแบบไม่มีการ Tuning อาจจะไม่ Fair สำหรับแต่ละ Web Server (แม้ผลจะออกมาชัดว่า Lighttpd เหนือกว่า) เพราะยังไม่ได้มีการดึงประสิทธิภาพหรือตั้งค่า Limit Connection ให้รองรับได้สูงสุด และยังมีในส่วนของ Cache หลาย ๆ แบบที่จะช่วยให้ไม่ต้องประมวลผล Page เดิม ๆ ซ้ำบ่อย ๆ แต่ถึงกระนั้นวิธีนี้เป็นวิธีการหนึ่งที่ใช้ในการทดสอบก่อนจะมีการใช้งานจริง เพื่อทำให้เราเตรียมการได้ทันท่วงที เช่นทดสอบแล้วมีบ้าง SQL ที่ใช้เวลานานกว่าปกติ หรือ database connection limit

    สำหรับ Jmeter นั้นสามารถทำอะไรได้อีกมากมาย สามารถเขียน Script ในลักษณะของ Batch Job เพื่อดู Flow การทำงานของทั้ง Web Database และอื่น ๆ ถ้าใครอยากศึกษาเพิ่มเติมสามารถหาอ่านได้จาก Google ทั่ว ๆ ไปครับ

    Reference :
    [1] http://www.cyberciti.biz/tips/howto-performance-benchmarks-a-web-server.html

  • การติดตั้งโปรแกรมตรวจสอบประสิทธิภาพ Server : Apache Jmeter บนเครื่อง Windows

    โปรแกรม Jmeter เป็นโปรแกรมสารพัดประโยชน์ใช้สำหรับทดสอบประสิทธิภาพการรองรับโหลดจำนวนมาก โดยในเบื้องต้นผมยังจะไม่อธิบายรายละเอียดโปรแกรมมากนะครับ จะนำเสนอแค่วิธีติดตั้ง และการ Test ในส่วนที่เป็น Web Server แบบไม่มี Script อะไรพิเศษเป็นหลัก แล้ววันหลังค่อยมาเปล่าในส่วนอื่น ๆ เช่นการ Test Load Database, LDAP, FTP, WebService ฯลฯ ถ้ามีโอกาสครับ

    ความต้องการพื้นฐานสำหรับโปรแกรม Jmeter
    1. Java 6 ขึ้นไป
    2. OS ซึ่งรองรับทั้ง Unix, Windows

    วิธีการติดตั้งบน Windows 
    Test OS : Windows 8.1
    1. ติดตั้ง JAVA สามารถทำการ Download และติดตั้งได้จาก

    http://www.java.com/en/download/index.jsp
    

    2. ดาวน์โหลดโปรแกรม Jmeter ได้จาก

    http://jmeter.apache.org/download_jmeter.cgi
    

    3. Save file .zip ดังรูป
    2014-05-22_202646

    4. ทำการแตกไฟล์ออกมา และทำการรันไฟล์ ApacheMeter.jar ดังรูป (จะปรากฎเป็น icon java สามารถ double click รันได้เลย)
    2014-05-22_203814

    ตัวอย่างการสร้าง Test Plan เพื่อทดสอบ Web Server

    1. ทำการสร้าง Thread Group ภายใต้ Test Plan ดังรูป
    2014-05-22_204434

    2. หลังจากนั้นจะปรากฎหน้าต่างให้ตั้งค่าได้ดังนี้
    2014-05-22_205548

    Number of Threads (users) : จำนวนผู้ใช้งานที่ต้องการ ณ เวลานั้น ๆ (concurrent users)
    Ramp-up Period (in seconds) : เวลาหน่วงในการเพิ่มผู้ใช้งานจนถึงจำนวน Number of Threads ที่ตั้งไว้ เช่น Number of Threads = 300, Ramp-up Period = 60 แสดงว่า ภายใน 60 วินาทีจะมี จำนวนผู้ใช้เข้าสู่ระบบรวม 300 คน (ค่อย ๆ เพิ่มเข้าไปจนครบ 300 ใน 60 วินาที)
    Loop Count : คือจำนวนรอบที่ทำ ถ้าติด Forever ก็แสดงว่าทำตลอดไป

    *หมายเหตุ ระวังอย่างตั้งค่าเว่อร์จนเกินไป เครื่องผู้ที่สั่ง Test อาจจะทำงานไม่ไหว Hang ได้

    3. จากนั้นทำการสร้าง Sampler ที่เป็น HTTP Request เพื่อกำหนดค่า config เบื้องต้นที่จำเป็นในการทดสอบ ดังรูป
    2014-05-22_212211

    4. จะปรากฎให้ตั้งค่า หลัก ๆ ถ้าต้องการยิงทดสอบธรรมดา ๆ ให้ใส่เฉพาะ Server Name หรือ IP และ Path เช่น /regist.php ถ้าต้องการยิงหน้าแรกก็ใส่ / เฉย ๆ ดังรูป

    2014-05-22_212413

    5. หลังจากนั้นทำการเพิ่มในส่วนของรายงานผล โดยแนะนำ 2 ตัวคือ View Results Tree และ Graph Results
    2014-05-22_210512

    6. ตัวอย่างผลลัพธ์จาก Results Tree (วิธีการรัน Test ให้กดที่ปุ่ม Play สีเขียว และปุ่ม Stop สีแดงเพื่อหยุด)2014-05-22_212755

    7. ตัวอย่างผลลัพธ์ในรูปแบบ Graph Results2014-05-22_213206

    Reference :
    [1] http://www.narisa.com/forums/index.php?app=blog&blogid=9&showentry=3019
    [2] http://www.narisa.com/forums/index.php?app=blog&blogid=9&showentry=2873

  • วิธีแก้ไขปัญหาเครื่อง Laptop ไม่สามารถปรับควบคุมแสงสว่าง Brightness Control ใน Ubuntu 14.04

    วิธีแก้ไขปัญหาเครื่อง Laptop ไม่สามารถปรับควบคุมแสงสว่าง Brightness Control ใน Ubuntu 14.04

    ปัญหานี้เกิดกับ Laptop ที่มีการ์ดแสดงผลของยี่ห้อ [Intel Graphics] ซึ่งจะไม่สามารถปรับควบคุมความเข้มความสว่างของจอภาพเพื่อปรับลด/เพิ่ม แสงได้ตามปกติ
    Desktop_Ubuntu

    – ให้ลองใช้คำสั่งตรวจสอบ video/graphic card ของท่านดูก่อนว่าเป็นผลิตภัณฑ์ยี่ห้อใด
    ls /sys/class/back light/
    list graphic card

    ถ้าปรากฎว่าแฟ้มข้อมูลที่แสดงออกมามีแฟ้มชื่อ intel_backlight อาจจะเกิดปัญหากับการปรับลด/เพิ่ม แสงของหน้าจอ ให้แก้ไขดังนี้

    touch /usr/share/X11/xorg.conf.d/20-intel.conf
    touch 20-intel.conf

    sudo vi /usr/share/X11/xorg.conf.d/20-intel.conf
    Selection_005
    จากนั้นพิมพ์ข้อมูลดังนี้

    Section "Device"
            Identifier  "card0"
            Driver      "intel"
            Option      "Backlight"  "intel_backlight"
            BusID       "PCI:0:2:0"
    
    EndSection

    หลังจากพิมพ์ข้อความเสร็จให้ทำการบันทึกแฟ้มดังกล่าว จากนั้นให้ลองล็อกเอาท์ logout หรือทำการ restart เครื่องใหม่ และลองใช้ฟังค์ชั่นคียร์ปรับลด/เพิ่ม แสงของจอภาพ
    เป็นอันเสร็จเรียบร้อย… ^_^

  • วิธีตั้งค่า Apache web server 2.4.x แตกต่างจาก 2.2.x

    asf_logo_wide
    เก็บตกจากวันวานเปิดอบรม Workshop Linux System Administration II (WS-LSA2) ที่ศูนย์คอมฯ 2 วัน ผมเตรียมเอกสาร workshop วิธีตั้งค่าหลายๆเรื่องบน ubuntu 12.04 แต่พอดีกับที่ ubuntu 14.04 ออกมาแล้ว จึงนำ ubuntu 14.04 มาให้ผู้เรียนใช้ติดตั้ง มันก็ไม่มีอะไรแตกต่างไปจาก ubuntu 12.04 ตั้งแต่เริ่มต้น installation จนกระทั่งมาถึงเรื่องที่เราจะตั้งค่าเกี่ยวกับ Apache web server ซึ่งทำให้ต้องแก้ไขเอกสารประกอบการสอนกันสดๆตอนนั้นเลย (ฮา)

    เพราะว่า Apache Web Server ที่อยู่ในแผ่น ubuntu 14.04 นั้นเป็นเวอร์ชั่น 2.4.7 ซึ่งมี Default Document Root อยู่ที่ /var/www/html ต่างจาก Apache Web Server เวอร์ชั่นก่อนหน้านี้ (2.2.x) ที่มี Default Document Root อยู่ที่ /var/www เป็นต้น

    พอจะสรุปได้ดังนี้

    Apache Web Server 2.2.x ทำแบบนี้
    1.พื้นที่ default ของ Apache Web Server คือไดเรกทอรี /var/www
    หากจะติดตั้ง Joomla CMS เราจะเตรียมพื้นที่สำหรับติดตั้ง joomla ไว้ที่ไดเรกทอรี /var/www/testjoomla ด้วยคำสั่ง sudo mkdir -p /var/www/testjoomla

    2.website config file จะอยู่ที่ไดเรกทอรี /etc/apache2/sites-available
    จะมีไฟล์ชื่อ default และ default-ssl มาให้
    และหากจะสร้าง VirtualHost pma.example.com เราก็สร้าง config file ที่มีชื่อไฟล์อย่างไรก็ได้ เช่น /etc/apache2/sites-available/pma หลังจากนั้นเราก็ enable VirtualHost นี้ จาก config ที่เราสร้างขึ้นใหม่ โดยการใช้คำสั่ง sudo a2ensite pma แล้วก็สั่ง restart apache

    3.เมื่อเข้าไปดูในไฟล์ default
    DocumentRoot จะอยู่ที่ /var/www

    4.Apache2 config file จะอยู่ที่ /etc/apache2/conf.d
    สมมติว่าต้องการเพิ่มการป้องกัน joomla web server ด้วย config file ชื่อ jce จะต้องทำดังนี้
    สร้างไฟล์ที่จะมีชื่ออย่างไรก็ได้ เช่น /etc/apache2/conf.d/jce แค่นี้ก็ได้แล้ว แล้วก็สั่ง restart apache และเมื่อจะไม่ใช้ config file jce นี้แล้ว ก็แค่ลบไฟล์นี้ทิ้ง

    แต่สำหรับ Apache Web Server 2.4.x วิธีการจะแตกต่างไป ดังนี้
    1.พื้นที่ default ของ Apache Web Server คือไดเรกทอรี /var/www/html
    หากจะติดตั้ง Joomla CMS เราจะต้องเตรียมพื้นที่สำหรับติดตั้ง joomla ไว้ที่ไดเรกทอรี /var/www/html/testjoomla ด้วยคำสั่ง sudo mkdir -p /var/www/html/testjoomla

    2.website config file จะอยู่ที่ไดเรกทอรี /etc/apache2/sites-available
    จะมีไฟล์ชื่อ 000-default และ default-ssl มาให้ (ต่างจาก 2.2.x)
    และหากจะสร้าง VirtualHost pma.example.com เราก็ต้องสร้าง config file ที่มี .conf ต่อท้ายชื่อไฟล์ด้วย เช่น /etc/apache2/sites-available/pma.conf
    หลังจากนั้นเราก็ enable VirtualHost นี้ จาก config ที่เราสร้างขึ้นใหม่ โดยการใช้คำสั่ง
    sudo a2ensite pma แล้วจึงจะสั่ง restart apache สำเร็จ

    3.เมื่อเข้าไปดูในไฟล์ default
    DocumentRoot จะอยู่ที่ /var/www/html

    4.Apache2 config file จะอยู่ที่ไดเรกทอรี /etc/apache2/conf-available และต้องสั่ง enable config file ที่ต้องการใช้งานก่อนจึงจะใช้งานได้ แล้วจะเกิดไฟล์ขึ้นอยู่ที่ไดเรกทอรี /etc/apache2/conf-enabled
    สมมติว่าต้องการเพิ่มการป้องกัน joomla web server ด้วย config file ชื่อ jce จะต้องทำดังนี้ เราต้องตั้งชื่อให้มี .conf ต่อท้ายด้วยคือ /etc/apache2/conf-available/jce.conf
    และใช้คำสั่งเพื่อ enable config file ดังนี้ sudo a2enconf jce แล้วก็สั่ง restart apache จึงจะสำเร็จ และเมื่อจะไม่ใช้ config file นั้น ก็จะต้องสั่งดังนี้ sudo a2disconf jce แล้วก็สั่ง restart apache จึงจะสำเร็จ

    ก็หวังว่าบทความนี้จะเป็น guide ให้แอดมินคิดออกว่า “เอ๊ะ! ทำไมเราตั้งค่าไม่ได้ทั้งๆที่เคยทำได้และทำอยู่บ่อยๆด้วย”

    ขอบคุณครับ

  • แนะนำโปรแกรมตกแต่งภาพสไตร์ Vintage ฟรี

    น่าจัดอยู่ในโปรแกรมประเภท Freeware นะครับ ไว้สำหรับตกแต่งรูปสไตร์ Vintage สวยๆแบบง่ายๆ เรียกว่า แทบไม่ต้องเรียนรู้การใช้งาน แค่กดเลือกรูปแบบเอาเลย ว่าชอบแบบไหน

    XnRetro

     

    นอกจากการตกแต่งแนวสไตร์ภาพแล้วยังสามารถเลือกกรอบภาพ ใส่เสริมแสงพวกโบเก้หรือหิมะตกเสริมเข้าไปในภาพก็ได้ เรียกว่าแต่งภาพกันได้สนุกไปเลย วิธีการใช้คงไม่ต้องแนะนำ เพราะง่ายมาก ใครสนใจก็ไปหาโหลดกันได้ที่

    http://www.xnview.com/en/xnretro/

    อ้อ สำหรับบนมือถือ มี App Free ไว้แต่งภาพบนมือถือด้วยนะครับใช้ชื่อโปรแกรมเดียวกันเลย แต่อาจจะไม่มีพวก Effect บางตวที่สงวนไว้สำหรับเวอร์ชั่นเสียเงินซื้อบ้าง แต่เท่าที่ให้ใช้ฟรีผมว่าใช้ได้เยอะแยะแล้วครับ

  • Shorewall Blacklist

    • ใช้ได้กับ Shorewall 4.4.12 ขึ้นมา
    • แก้แฟ้ม /etc/shorewall/interfaces โดยเพิ่มความว่า blacklist ต่อท้ายของเดิม เป็น

    net eth0 detect tcpflags,logmartians,nosmurfs,blacklist

    • เพิ่มลิสต์ที่ต้องการบล็อคลงไปในแฟ้ม /etc/shorewall/blacklist
    • ตัวอย่างค้นหาเครื่องที่ต้องการบล็อคการเข้าถึงพอร์ต 80 และ 443

    grep -R phpmyadmin/scripts/setup.php /var/log/apache2|cut -d: -f2|awk '{ print $1 }'|sort -t'.' -n -k1,1 -k2,2 -k3,3 -k4,4|uniq

    • จากตัวอย่างในเครื่องเราไม่มี phpmyadmin แต่มีคนพยายามเข้าถึงตัวติดตั้ง phpmyadmin ฉะนั้นบล็อค IP พวกนี้ไว้ก่อน (บล็อคถาวรกรั่กๆ…)
    • เอา IP จากข้อที่แล้วมาใส่ในแฟ้ม /etc/shorewall/blacklist รูปแบบ

    #ADDRESS/SUBNET PROTOCOL PORT

    • เช่น

    93.115.210.90 tcp 80,443
    93.174.93.153 tcp 80,443
    94.23.58.185 tcp 80,443
    94.102.51.155 tcp 80,443
    103.247.21.60 tcp 80,443
    107.6.88.155 tcp 80,443
    109.163.232.218 tcp 80,443
    110.170.34.220 tcp 80,443
    111.90.168.5 tcp 80,443
    115.84.101.78 tcp 80,443
    115.238.101.45 tcp 80,443
    115.239.253.11 tcp 80,443
    116.93.105.112 tcp 80,443
    117.35.96.146 tcp 80,443
    118.140.120.26 tcp 80,443
    119.52.254.20 tcp 80,443
    119.57.51.154 tcp 80,443
    122.49.0.220 tcp 80,443
    123.125.148.79 tcp 80,443
    125.210.204.242 tcp 80,443

    • restart shorewall

    sudo shorewall restart

    • IP ที่ถูกแบล็คลิสต์ อาจหายไปจากสารบบ ทำให้ shorewall start ไม่ขึ้น ต้องลบไอพีดังกล่าวออกไปก่อนจึงจะ start ได้

    Compiling /etc/shorewall/blacklist...
    ERROR: Unknown Host (93.x4.93.153) : /etc/shorewall/blacklist (line 23)

    • จบ… ขอให้สนุกครับ

    ที่มา http://shorewall.net/manpages/shorewall-blacklist.html

    • คีย์เวิร์ดสำหรับแบน
    • /CFIDE/administrator/enter.cfm
    • /MyAdmin/scripts/setup.php
    • /myadmin/scripts/setup.php
    • /phpMyAdmin/scripts/setup.php
    • /pma/scripts/setup.php
    • /w00tw00t.at.blackhats.romanian.anti-sec:)
    • เป็นต้น
  • วิธี Backup PSU Email ด้วย Thunderbird

    เนื่องจาก PSU Email ให้พื้นที่ปัจจุบัน 1GB ซึ่ง อาจจะไม่เพียงพอต่อความต้องการของผู้ใช้บางท่าน หรือ บางท่านต้องการสำรองข้อมูล Email เก็บไว้ในเครื่องคอมพิวเตอร์

     ซึ่งสามารถทำได้ โดยใช้งานผ่านโปรแกรม Mozilla Thunderbird เชื่อมต่อกับ PSU Email ด้วย IMAP อีกทั้ง สามารถส่ง Email ออกได้จากทั่วโลกผ่าน smtp2.psu.ac.th และ ตัวอย่างต่อไปนี้ จะสร้างพื้นที่จัดเก็บบนเครื่องคอมพิวเตอร์ ไว้ใน D:\MyBackup

    (รายละเอียดของ PSU Email สามารถอ่านได้ที่ http://www.cc.psu.ac.th/staffemail)

    มีวิธีการดังนี้

    1. Download Mozilla Thunderbird (รุ่นล่าสุด 24.3.0) จาก http://www.mozilla.org/en-US/thunderbird/

     

    คลิกที่ Thunderbird Free Download แล้ว Save File ลงเครื่อง

    2. Double Click ไฟล์ ที่ Download มา (Thunderbird Setup 24.3.0.exe)

    3. จากนั้น ใช้ Next Technology คือ Yes, Next, Next, Install และ Finish

    4. จากหน้านี้ คลิก Set as Default

     5. คลิก Skip this and use my existing email

    6. กรอกข้อมูล ให้ครบ แล้ว คลิก Continue แล้ว คลิก Manual Config

    7. กรอกข้อมูลตามนี้ แล้ว คลิก ปุ่ม Advanced Config

    8. คลิกที่ Local Folder, คลิก Browse แล้ว เลือก D:\MyBackup (แล้วแต่จะสร้าง Folder)

    9. หน้าต่างนี้ คลิก Restart

    10. ด้านขวามือ คลิกขวา ที่ Local Folders แล้ว คลิก New Folder ….

     

    11. ตั้งชื่อ PSUEmail แล้วคลิก Create Folder

     12. เมื่อต้องการ เก็บสำเนา (Copy) หรือ ย้าย (Move) จดหมายจาก INBOX ของ PSU Email มาเก็บไว้ใน Local Folders บนเครื่องคอมพิวเตอร์ของเท่าน ก็ให้ทำการเลือกจดหมายที่ต้องการ แล้ว คลิกขวา (Right Click) แล้ว เลือก Copy To หรือ Move To ไปยัง Local Folder > PSUEmail

    เท่านี้ ก็ สามารถ เก็บจดหมายที่ต้องการไว้ในเครื่องได้แล้ว และสามารถทำการ สำรอง D:\MyBackup เอาไว้ใน Handy Drive, DVD หรือ External Hard disk ได้

    13. เมื่อต้องการนำมาใช้งาน ก็เพียงแค่ Copy ลงไปในเครื่อง แล้ว ทำตามขั้นตอน ข้อ 8 และ 9 ก็จะสามารถใช้งาน Email ที่เก็บไว้ได้ ดังตัวอย่างนี้

    14. สำหรับ การใช้งาน ThunderBird ให้สามารถใช้ภาษาไทยได้อย่างถูกต้อง และเป็นสากล ต้องตั้งค่าให้ ภาษาไทยใช้ Character Encoding เป็น UTF-8 โดยคลิกที่ Menu > Options แล้ว คลิกที่ Display > Advanced แล้ว เปลี่ยน Font for เป็น Thai และ ตั้งค่า Outgoing mail, Incoming Mail เป็น UTF-8 ตามภาพ แล้วคลิก OK

    หวังว่าจะเป็นประโยชน์ครับ

  • วิธีตรวจสอบเว็บไซต์ที่โดน 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 รับทราบ และเพิ่มเติมให้ น่าจะทำให้ปลอดภัยมากขึ้นได้

    สมมุติฐานคือ

    1. ติดตั้ง OS และ Apache Web Server ใหม่

    2. ติดตั้ง 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  จาก mods-enabled, กำหนดว่า จะเปิดให้มี Virtual Host อะไรบ้างโดยการ Include ไฟล์จาก sites-enabled และ ที่สำคัญ ผู้ดูแลระบบสามารถแยกไฟล์ config ออกเป็นส่วนย่อยๆเป็นไฟล์ โดยการ Include จาก conf.d

    ต่อไป สร้างไฟล์ /etc/apache2/conf.d/jce มีเนื้อหาดังนี้

    <DirectoryMatch ".*/images/stories/.*">
    <FilesMatch "\.php$">
           Order Deny,Allow
           Deny from All
     </FilesMatch>
    </DirectoryMatch>

     และในทำนองเดียวกัน สร้างไฟล์ /etc/apache2/conf.d/uploads มีเนื้อหาดังนี้

    <DirectoryMatch ".*/uploads/.*">
    <FilesMatch "\.php$">
           Order Deny,Allow
           Deny from All
     </FilesMatch>
    </DirectoryMatch>

    ก่อนจะ Restart/Reload Apache ทดสอบสร้างไฟล์ใน

    /var/www/joomla15/images/stories/0day.php
    /var/www/mywebapp/uploads/hack.php

    เมื่อเรียก URL
    http://localhost/joomla15/images/stories/0day.php

    http://localhost/mywebapp/uploads/hack.php

     ผลที่ได้คือ Backdoor หน้าตาประมาณนี้

    แต่พอใช้ Reload Apache ด้วยคำสั่ง

     sudo /etc/init.d/apache2 reload

     แล้วเรียก URL

     http://localhost/joomla15/images/stories/0day.php

     จะได้ผลดังนี้

    เป็นอันว่า แม้ Hacker จะสามารถเอาไฟล์ 0day.php ไปวางใน images/stories ได้ แต่ก็จะไม่สามารถทำงานได้ (อย่างน้อย ก็เรียกใช้ไม่ได้ แต่ผู้ดูแลต้องค้นหาและทำลายเป็นประจำ)

     อธิบายเพิ่มเติมเกี่ยวกับ Apache Configuration เล็กน้อย, การเขียนนั้น ประกอบด้วยสิ่งที่เรียกว่า Directive โดยแบ่งออกเป็น Container และ Directive ทั่วไป

    1. Container Directive: เป็นตัวบอกขอบเขต แบ่งออกเป็น

    1.1 FileSystem: ได้แก่

    1.1.1 <Directory directory-path> … </Directory>
    ตั้งค่ากับเฉพาะ ขอบเขตของ Directory ซึ่ง directory-path จะต้องเขียนตามให้เต็ม Path เช่น
    <Direcotory /var/www>
    ….
    </Directory>

    1.1.2 <DirectoryMatch regexp> … </DirectoryMatch>
    ตั้งค่ากับเฉพาะ ขอบเขตของ Directory ซึ่งสอดคล้องกับ regexp ที่กำหนด เช่น
    <DirecotoryMatch “.*/images/stories/.*”>
    ….
    </DirectoryMatch>

    1.1.3 <Files filename> … </Files>
    ตั้งค่ากับเฉพาะ ชื่อไฟล์ที่ตรงกับ filename ที่กำหนด เช่่น
    <Files “somefile.html”>

    </Files>

    1.1.4 <FilesMatch regexp> … </FilesMatch>
    ตั้งค่ากับเฉพาะ ชื่อไฟล์ที่สอดคล้องกับ regexp ที่กำหนด เช่่น
    <FilesMatch “.*\.php$”>

    </FilesMatch>

    1.2 WebSpace: ได้แก่

    1.2.1 <Location URL-Path> … </Location>
    ตั้งค่ากับเฉพาะ URL ที่ตรงกับ URL-Path เช่น
    <Location /private>

    </Location>
    1.2.2 <LocationMatch regexp> … </LocalMatch>
    ตั้งค่ากับเฉพาะ URL ที่สอดคล้องกับ regexp เช่น
    <LocationMatch “/(extra|special)/data”>

    </LocationMatch>

    2. Other Directive
    ซึ่งมีอยู่มากมาย กรุณาอ่านเพิ่มเติมจาก http://httpd.apache.org/docs/2.2/mod/core.html แต่ในที่นี้ จะขอยกตัวอย่างที่สำคัญ และจำเป็นต้องใช้ ตามตัวอย่างข้างต้น คือ

    Order ordering : อยู่ใน Module mod_access_compat, ค่า ordering ที่สามารถกำหนดได้คือ

    Allow, Deny ซึ่งจะพิจารณาการอนุญาตก่อนปฏิเสธ และ Deny, Allow จะปฏิเสะก่อนแล้วพิจารณาอนุญาต ให้เข้าถึงไฟล์ หรือ ไดเรคทอรี่ต่างๆ

    Deny all|host : อยู่ใน Module mod_access_compat, ค่า all หมายถึง ปฏิเสธทุกการเชื่อมต่อจากทุกๆที่, host สามารถเป็น IP Address หรือ URL ก็ได้

    Allow all|host : อยู่ใน Module mod_access_compat, ค่า all หมายถึง ยอมรับทุกการเชื่อมต่อจากทุกๆที่, host สามารถเป็น IP Address หรือ URL ก็ได้

    ดังนั้น ไฟล์ /etc/apache2/conf.d/jce ซึ่งมีเนื้อหาว่า

    <DirectoryMatch ".*/images/stories/.*>
     <FilesMatch "\.php$">
           Order Deny,Allow
           Deny from All
     </FilesMatch>
    </DirectoryMatch>

    หมายถึง ถ้ามีการเรียก ไฟล์ที่อยู่ใน directory อะไรก็ตามที่มีส่วนหนึ่งของ Path เป็น images/stories ก็จะ ไปดูว่า ชื่อไฟล์ที่เรียกนั้น มีนามสกุลเป็น .php หรือไม่ (.* แปลว่า ตัวอักษรอะไรก็ได้, \. หมายถึงจุด “.” ที่ใช้เชื่อม filename และ extenstion และ $ หมายถึง สิ้นสุดข้อความ) ถ้าเป็นการเรียกไฟล์ .php ใน images/stories ก็จะ ปฏิเสธเสมอ (Deny from ALL)

    แล้ว ทำไมไม่ใช่ .htaccess ?

    จาก Apache Security Tips ไม่แนะนำให้ใช้ .htaccess เพราะปัญหาด้าน Performance เพราะทุกครั้งที่จะเข้าถึงไฟล์ จะต้องพิจารณา .htaccess ทุกครั้ง ในเวปไซต์ที่มีการใช้งานมาก อาจจะทำให้ความเร็วช้าลงได้ อีกประการหนึ่ง .htaccess นั้นอยู่ในไดเรคทอรี่ที่ผู้ใช้สามารถกำหนดสิทธิ์ (Permission) เองได้ หากพลาดกำหนดให้ Web User สามารถเขียนได้ อาจจะทำให้ Hacker เลี่ยงข้อกำหนดต่างๆได้ หาก ที่ Apache Main Configuration ประกาศ AllowOverride เป็น ALL

    ขอให้โชคดี

    Reference

    [1] “Apache HTTP Server Version 2.2 Documentation – Apache HTTP …” 2005. 7 Jan. 2014 <http://httpd.apache.org/docs/2.2/> .

    [2] “Security Tips – Apache HTTP Server.” 2005. 7 Jan. 2014 <http://httpd.apache.org/docs/2.2/misc/security_tips.html>