Category: Linux (OS, shell script, etc)

  • วิธีนำไฟล์ iso Linux Mint ลง USB Flash Drive ด้วยโปรแกรม Rufus for Windows

    วิธีนำไฟล์ iso Linux Mint ลง USB Flash Drive ด้วยโปรแกรม Rufus for Windows

    เป็นการทำให้เราสามารถ boot Linux Mint ด้วย USB Flash Drive แทนการ Boot จากแผ่น DVD

     

    ขั้นตอน

    1.ดาวน์โหลด Linux Mint ISO file จากที่นี่ http://www.linuxmint.com/ (หรือในม.อ.ที่นี่ https://licensing.psu.ac.th)

    2.ดาวน์โหลดโปรแกรม Rufus จากที่นี่ https://rufus.akeo.ie/

    Rufus : Create bootable USB drives the easy way

    3.นำไฟล์มาวางไว้ที่ Desktop ใช้ได้โดยไม่ต้องทำขั้นตอนติดตั้งโปรแกรม

    rufus

    4.เสียบ USB Flash Drive

    5.เปิดโปรแกรม Rufus

    rufus02

    5.คลิกเลือก ISO file ที่ดาวน์โหลดมา และคลิก Start

    rufus03

    6.คลิก OK ยืนยันการใช้ค่าที่แนะนำ

    rufus04

    7.รอจนเสร็จ

    rufus05

  • psuautosigned for windows?

    เช้าของวันที่ 14 ธันวาคม 2558 คุณ คณกรณ์ post ถามไว้ในกลุ่ม PSU Sysadmin บน facebook ว่า

    เรียนสอบถาม (จะได้ไม่ต้องทำซ้ำ) บน windows 10 ใครมี script ให้ทำการ auto authentication บ้างไม๊ครับ บางเครื่องต้องเปิดค้างไว้ข้ามวัน จะได้เข้ามาดูทางไกลได้ น่ะครับ ตอนนี้ใช้ team viewer ก็ยังติดเรื่องนี้อยู่ดี

    ขอบคุณครับ

    มีคุณ Thanongdat Noosrikaew กับคุณ ป้อม เภสัชฯ (Siripong Siriwan)  มาเสนอทางเลือกในการแก้ปัญหา แต่ดูเหมือนจะไม่ตรงกับที่เจ้าของคำถามต้องการสักเท่าไหร่
    ผมอ่านแล้วก็ตั้งคำถามกับตัวเองว่า แล้วผมจะต้องตอบคำถามนี้ ผมมีทางเลือกอะไรบ้าง?
    คำตอบที่มีให้กับตัวเองก็คือ หากินกับของเก่าที่เคยทำเอาไว้แล้ว … คือ… มีคำสั่งคำสอน ที่ถ่ายทอดมาตั้งแต่ยุคโบราณกาลครั้งเก่าโพ้น ในชนเผ่า sysadmin ว่า sysadmin ที่ดีจะเป็นคนขี้เกียจ อะไรที่ได้ทำไว้แล้ว และยังเอามาใช้ได้ ก็ไม่ควรที่ทำขึ้นมาใหม่ … อันนั้น เป็นเรื่องที่ผมได้ยินมานะครับ จะเชื่อถือได้แค่ใหนก็แล้วแต่ท่านทั้งหลายจะได้พิจารณากัน

    ผมก็เลยพยายามทำตัวเป็น admin ขี้เกียจ .. เฮ่ย ไม่ใช่ เป็น admin ที่ดี ซึ่ง … ก็คือ ขี้เกียจน่ะแหละ -_-”
    มีอะไรที่เคยทำเอาไว้แล้ว ก็เอามา recycle ขายใหม่ ถ้าขายได้ … เราต้องช่วยกันอนุรักษ์สิ่งแวดล้อม … เกี่ยวกันใหม?

    คำตอบแรกที่ผมคิดได้ก็คือ

    ถ้า ยังหา solution บน Windows โดยตรงไม่ได้ และ ไม่รังเกียจที่จะติดตั้ง cygwin เพิ่มเข้าไปบนตัว windows ผมคิดว่า psuautosigned ที่เขียนไว้สำหรับ Linux ก็น่าจะพอดัดแปลงให้ใช้งานบน Windows ได้ครับ ฟังก์ชัน หลักๆ ต้องการแค่ shell ซึ่งอาจจะเป็น cmd.exe ของ windows เองก็ได้ กับโปรแกรมที่ชื่อว่า curl ครับ โปรแกรมอย่างอื่นเป็นแค่ตัวประกอบ แต่ทั้งหมด รวมทั้ง shell และ curl มีอยู่ใน cygwin อยู่แล้ว

    ผมไม่มีเครื่องที่ใช้งาน windows 10 ให้ลอง ถ้าจะช่วยทดสอบให้ ผมก็ยินดีที่จะแก้ script ให้รองรับ windows 10 ด้วยครับ

    โปรแกรม psuautosigned ที่ผมอ้างถึงคือ ตัวนี้ ซึ่งเคยเขียนถึงเอาไว้แล้ว ที่นี่ , ที่นี่, ที่นี่, และ ที่นี่ … ซึ่ง มาคิดดูอีกที เยอะแฮะ กับ script ตัวเดียวทำไมจะต้องเขียนบันทึกเกี่ยวกับมันหลายบันทึกด้วยก็ไม่รู้ จะว่าไป บันทึกนี้เอง ก็นับเป็นหนึ่งในชุดนี้ด้วยแหละ

    ส่วน cygwin ก็คือ https://www.cygwin.com/ เป็น tools สำหรับ Windows ให้สามารถใช้งานได้เหมือน(หรือใกล้เคียงมากๆ) กับการใช้ชีวิตอยู่บน Unix Command Line … ซึ่งเนื่องจาก script psuautosigned พัฒนาและใช้งานบน Linux ถ้าจะให้เอาไปใช้งานบนเครื่อง Windows 10 ได้ตามความต้องการของคุณหนุ่ม ก็ต้องการเครื่องมือเหล่านี้ มาช่วยด้วย

    นั่นหมายถึงว่า ถ้าจะเอาไปใช้ จะต้องติดตั้งโปรแกรมเพิ่ม และ ถึงแม้ว่า cygwin จะสร้างสภาพแวดล้อมแบบ Unix บนเครื่อง Windows เจ้าตัว script ที่ผมเขียน และ ทดสอบบน Debian Linux ก็จะยังไม่สามารถเอาไปใช้งานได้ทันที มันจะต้องการแก้ไขบางส่วนแน่ ๆ

    พอนั่งทบทวนไปสักพักว่ามีส่วนใหนที่จะต้องแก้ไขบ้าง จากความจำที่ค่อนข้างลางเลือนในส่วนที่เกี่ยวข้องกับ cygwin เพราะไม่ได้ใช้ Windows นานมาก และ cygwin ก็ไม่ได้แต่นานมากเช่นเดียวกัน และ มีความขี้เกียจ เอ๊ย! ผิด! มีคุณลักษณะที่ดีของ sysadmin เป็นตัวกระตุ้น … ผมก็ได้ idea ใหม่แจ่มแจ๋วขึ้นมา

    นี่คือสิ่งที่ผม post reply ตามไปจาก reply ที่แล้ว

     

    หรือ อีกทางนึง ถ้ามี resource บนเครื่อง windows 10 เหลือเฟือ และไม่รังเกียจที่จะเสีย เนื้อที่ harddisk สัก 512MB และ memory สัก 32MB ก็ติดตั้ง virtualbox (เอ่อ เนื้อที่ harddisk กับ ram ข้างต้นไม่รวมของ virtualbox) และติดตั้ง linux ตัวใหนก็ได้แบบ minimal (แต่แนะนำ debian) ลงไปต้องการแค่ bash shell, basic linux utils และ ติดตั้งโปรแกรม curl เพิ่ม กำหนดให้ interface ของ VM เป็นแบบ NAT ก็จะสามารถใช้โปรแกรม psuautosigned สำหรับการ authen จากตัว VM ซึ่งเมื่อใช้งานเป็นแบบ NAT ก็จะ authen ให้กับ host ที่เป็น windows 10 ด้วยเลย วิธีการนี้ ก็ไม่จำเป็นที่จะต้องดัดแปลง psuautosigned ใดๆทั้งสิ้นครับ

    และ

    ถ้า เลือกใช้วิธีการติดตั้ง debian บน VM ตอนติดตั้งจะต้องให้ memory ของเครื่องซํก 256 หรือ 512 MB ก่อนนะครับ เพราะตอนตั้ง มันจะใช้ RAM ค่อนข้างเยอะ ถ้ามี memory น้อยเกินไปจะติดตั้งไม่สำเร็จ แต่ พอติดตั้งเสร็จแล้ว ก็ค่อยลด memory ให้เหลือเท่าที่จำเป็นต้องใช้ ผมไม่แน่ใจว่าตอนนี้มันต้องการเท่าไหร่ แต่ถ้าไม่มีอะไรอย่างอื่นที่ไม่จำเป็นต้องใช้ run อยู่เลย ผมคิดว่า 32MB ก็เหลือเฟือครับ เครื่องของผมที่ run linux สมัยแรกๆ ใช้ RAM แค่ 8MB ก็ run ได้โดยไม่แตะ swap ในตอน boot และใช้แค่ console ไม่ได้ run X-windows

    ข้อดีที่สุดของวิธีการนี้ ถ้าคุณหนุ่มจะเอาไปใช้ก็คือ จะต้องไป download และ ติดตั้งโปรแกรม virtualbox จาก ที่นี่ แล้วก็สร้าง Virtual Machine ที่เป็น Linux ขึ้นมา ซึ่งถ้า Linux ที่เป็น Debian ตามที่ผมแนะนำ ตัว script ก็สามารถที่จะทำงานได้เลย โดยไม่ต้องแก้ไขใดๆทั้งสิ้น ปล่อยภาระของการแก้ปัญหาเรื่องนี้ ให้เป็นการติดตั้ง Linux บน Virtual Box ของคุณหนุ่มไป ส่วนผม อยู่เฉยๆ ทำตัวขี้เกี… เอ๊ย ทำตัวเป็น sysadmin ที่ดี ที่มีทั้งหลังที่ยาว และ ขนตามตัวยาวเฟื้อยต่อไป 😉

    อันที่จริง วิธีการนี้ จะเป็นการใช้ psuautosigned script สำหรับการ signed in หรือ login สำหรับตัวเครื่อง Virtual Machine ที่เป็น Linux แต่ trick สำหรับกรณีนี้ก็คือว่า ถ้ากำหนดให้ชนิดของ Network Interface ของ Virtual Box เป็นแบบ NAT ตัว Host OS ของเครื่อง ซึ่งในกรณีนี้ก็คือ Windows 10 จะส่งข้อมูลของการติดต่อ ของ Linux VM ไปยังเครื่องอื่นๆด้วย IP Address ของเครื่อง Windows 10 เอง เมื่อ Linux VM ไป authentication กับเครื่อง Palo Alto ก็จะใช้ address ของ Windows 10 ก็เลยเป็นการ authentication ให้กับตัว Windows 10 ซึ่งเป็น host computer ไปด้วยกันเลย ทำให้ไม่จำเป็นจะต้องใช้การ authen ใดๆจาก Windows 10 เอง

    และ ถ้าจะว่าไป ในกรณีนี้ ไม่จำเป็นที่จะต้องใช้ VirtualBox ก็ได้ อาจจะใช้ VMWare หรือ Virtualization อื่นๆที่สามารถใช้งานได้บนเครื่อง Windows ก็สามารถืำได้แบบเดียวกัน ข้อสำคัญก็คือ ชนิดของเครือข่ายที่จะให้ Linux VM ติดต่อออกสู่ภายนอก จะต้องเป็นแบบ NAT ก็ทำได้แบบเดียวกัน เพียงแต่ผมไม่เคยใช้งาน Virtualization Technology อื่นๆ ก็เลยไม่แนะนำครับ เพราะคงตอบคำถามเกี่ยวกับวิธีการ setup network ให้กับ virtual machine ไม่ได้

    โดยหลักๆ วิธีการแก้ปัญหา ของผมก็คงมีแค่นี้แหละ

    แต่หลังจากตอบคำถามไปแล้ว ก็เลยกลับไปดู script ที่เคยเขียนไว้อีกหน่อยนึง อันที่จริง ก็เขียนเอาไว้นานจนจำแทบไม่ได้เหมือนกันว่าได้เขียนอะไรไว้บ้าง แต่พอลองเอามาไล่ดูและ ตัดเอาเฉพาะส่วนที่จำเป็นออก ก็ได้ script สำหรับการใช้งาน บน Linux ประมาณนี้ครับ

    #!/bin/bash

    USER=”YOUR-PASSPORT-ID”
    PASSWD=”YOUR-PASSPORT-PASSWORD”
    COOKIES=”cookies.txt”

    /usr/bin/curl \
    –connect-timeout 10 \
    –max-time 10 \
    -s -k \
    -L ‘https://cp-ufw.psu.ac.th:6082/php/uid.php?vsys=1‘ \
    -c $COOKIES \
    -b $COOKIES \
    -d user=$USER \
    –data-urlencode “passwd=$PASSWD” \
    -d ok=Login

    และนี่คือคำอธิบายที่ผม post ตามไป

    อันนี้ ไม่มีการตรวจสอบอะไรทั้งสิ้น และมีการเรียกใช้งานเพียงครั้งเดียว ซึ่งมันก็จะ timeout ไปตามช่วงเวลา ถ้าจะให้มัน authen ได้ตลอด ก็อาจจะเรียกใช้จาก crontab ทุกๆช่วงเวลาก่อนที่มันจะ timeout ไป ผมไม่แน่ใจว่าค่า timeout ล่าสุดจะเป็นเท่าไหร่ แต่ที่ผมใช้อยู่ผมให้มัน loop ไป check login ว่า authenticate ไปแล้วหรือเปล่า ทุกๆ 10 นาที URL ซึ่งใช้ตรวจสอบการ login จะต่างไปจากนี้ แต่ผมคิดว่า ถ้าสั่งให้ authen ใหม่ ผลก็น่าจะไม่ต่างกัน script ข้างบน ถ้าจะให้ใช้งานได้จาก windows 10 ก็ คงเปลี่ยนบรรทัดแรกให้ไป อ้างอิง cmd.exe หรือ เปลี่ยนเป็นชื่อเป็น .bat และ path ที่ใช้อ้างอิง /usr/bni/curl ก็เปลี่ยนไปใช้ของ Windows

    ส่วน parameter ของ curl ทั้งหมด ก็ลบเครื่องหมาย backslash ของทุกบรรทัดออก ให้เหลือคำสั่งแค่บรรทัดเดียวก็น่าจะใช้งานได้แล้วครับ

    อ้อ เปลี่ยน USER กับ PASSWD แล้วก็ COOKIES (ชื่อไฟล์สำหรับเก็บ cookeis) ให้เป็นค่าที่เหมาะสมด้วยครับ

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

  • การตั้งค่า IPV6 ให้กับ Apache Web Server สำหรับ Ubuntu Linux

    “อยากตั้งค่า Apache Web Server ให้เปิดใช้ IPv6 ต้องทำอย่างไร”

    • สำหรับวิธีเปิดใช้งาน IPv6 บน Apache จะขอยกตัวอย่างบน Ubuntu ซึ่งจริง ๆ แล้วสามารถตั้งเป็น IPv6 only ก็ได้ แต่ในที่นี่จะตั้งให้สามารถใช้ได้ทั้ง IPv4 และ IPv6
      1. เปิดไฟล์ /etc/apache2/ports.conf
        sudo vim /etc/apache2/ports.conf
      2. ทำการแก้ไขโดยเพิ่มในส่วนของ IPv6 Config ดังนี้ (xxx yyy ไปหามาใส่เอาเองนะครับ เป็นแค่ค่าสมมุติ)
        Listen 192.168.xxx.yyy:80
        Listen [2001:xxxxxx:101]:80
      3. สั่ง Restart Web Service เป็นอันเรียบร้อยครับ
        sudo /etc/init.d/apache2 restart
      4. สามารถตรวจสอบผ่านคำสั่ง netstat ได้ดังนี้ครับ
        netstat -na | grep ":80"
    • การทดสอบในกรณียังไม่ได้จด DNS6 เราไม่สามารถพิมพ์ URL เป็น IPv6 ตรง ๆ บน Browser ได้ ถ้าจดแล้วสามารถทดสอบผ่าน http://ipv6-test.com/validate.php ดูได้ครับ
  • การตั้งค่า IPV6 ให้กับ Nginx Web Server สำหรับ Ubuntu Linux

    “อยากตั้งค่า Nginx Web Server ให้เปิดใช้ IPv6 ต้องทำอย่างไร”

    • สำหรับวิธีเปิดใช้งาน IPv6 บน Nginx จะขอยกตัวอย่างบน Ubuntu ซึ่งจริง ๆ แล้วสามารถตั้งเป็น IPv6 only ก็ได้ แต่ในที่นี่จะตั้งให้สามารถใช้ได้ทั้ง IPv4 และ IPv6
      1. เปิดไฟล์ /etc/nginx/site-available/[site-file]
        sudo vim /etc/nginx/site-available/psu-v6
      2. ทำการแก้ไขโดยเพิ่มในส่วนของ IPv6 Config ดังนี้ (เพิ่มเฉพาะตัวสีแดงนะครับ)
        server {
          listen [::]:80;  
          ...
        }
      3. สั่ง Restart Web Service เป็นอันเรียบร้อยครับ
        sudo /etc/init.d/nginx restart
      4. สามารถตรวจสอบผ่านคำสั่ง netstat ได้ดังนี้ครับ
        netstat -na | grep ":80"
    • การทดสอบในกรณียังไม่ได้จด DNS6 เราไม่สามารถพิมพ์ URL เป็น IPv6 ตรง ๆ บน Browser ได้ ถ้าจดแล้วสามารถทดสอบผ่าน http://ipv6-test.com/validate.php ดูได้ครับ
  • การตั้งค่า IPV6 ให้กับ Lighttpd Web Server สำหรับ CentOS Linux

    “อยากตั้งค่า Lighttpd Web Server ให้เปิดใช้ IPv6 ต้องทำอย่างไร”

    • สำหรับวิธีเปิดใช้งาน IPv6 บน Lighttpd จะขอยกตัวอย่างบน CentOS 6.7 ซึ่งจริง ๆ แล้วสามารถตั้งเป็น IPv6 only ก็ได้ แต่ในที่นี่จะตั้งให้สามารถใช้ได้ทั้ง IPv4 และ IPv6
      1. เปิดไฟล์ /etc/lighttpd/lighttpd.conf
        sudo vim /etc/lighttpd/lighttpd.conf
      2. ทำการแก้ไขโดยเพิ่มในส่วนของ IPv6 Config ดังนี้ (แทนที่ [web-path] ด้วย location จริง ๆ เช่น “/var/www”)
        $SERVER["socket"] == "[::]:80" {
         accesslog.filename = "/var/log/lighttpd/ipv6.access.log"
         server.document-root = [web-path]
        }

        *หมายเหตุ : server.use-ipv6 = “disable” ไม่ต้องแก้ไขนะครับ เพราะ ด้วยชื่อ domain เดียวกันจะไม่สามารถเปิด port 80 สอง port ได้พร้อมกัน ทำได้แค่เพิ่ม SERVER Socket config เข้าไปอย่างที่เห็นข้างบนครับ (จะใช้ก็ตอนที่จะเปิดเฉพาะ IPv6 only ครับ)

      3. สั่ง Restart Web Service เป็นอันเรียบร้อยครับ
        sudo service lighttpd restart
      4. สามารถตรวจสอบผ่านคำสั่ง netstat ได้ดังนี้ครับ
        netstat -na | grep ":80"
    • การทดสอบในกรณียังไม่ได้จด DNS6 เราไม่สามารถพิมพ์ URL เป็น IPv6 ตรง ๆ บน Browser ได้ ถ้าจดแล้วสามารถทดสอบผ่าน http://ipv6-test.com/validate.php ดูได้ครับ
  • การตั้งค่า Interface IPv6 สำหรับเครื่อง CentOS/Redhat Server

    “อยากให้ CentOS/Redhat Server เปิดใช้ IPv6 ต้องทำอย่างไร”

    • สำหรับวิธีเปิดใช้งาน IPv6 บน CentOS/Redhat จะขอยกตัวอย่าง CentOS 6.7 โดยทำการตั้งค่า Interface ในส่วนของ IPv6 ดังนี้
      1. เปิดไฟล์ /etc/sysconfig/network-scripts/[interface-setting-file]
        sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
      2. ทำการแก้ไขโดยเพิ่มในส่วนของ IPv6 Config ดังนี้ (xxx คือ censor นะครับ)
        IPV6INIT="yes"
        IPV6ADDR=2001:xxxxxxx:34
        IPV6_DEFAULTGW=2001:xxxxxxx::1
        
      3. สั่ง Restart เครื่องเป็นอันเรียบร้อยครับ (ในกรณีที่เป็น CentOS 6 สั่ง sudo service network restart ก็ได้ครับ)
        sudo reboot
      4. สามารถตรวจสอบผ่านคำสั่ง ifconfig ได้ดังนี้ครับ
        ifconfig
    • อย่าลืมตรวจสอบ Firewall ด้วยนะครับ แต่โดยปกติ CentOS จะมี Firewall ตั้งแต่เริ่มติดตั้ง ในกรณีที่ไม่ได้ Disable Firewall ให้เข้าไปแก้ได้ที่
      sudo /etc/sysconfig/ip6tables
    • ในกรณีที่ใช้ Shorewall ลองศึกษาเพิ่มเติมดูครับว่าต้องแก้ไขอย่างไร
  • การตั้งค่า Interface IPv6 สำหรับเครื่อง Ubuntu Server

    “อยากให้ Ubuntu Server เปิดใช้ IPv6 ต้องทำอย่างไร”

    • สำหรับวิธีเปิดใช้งาน IPv6 บน Ubuntu จะขอยกตัวอย่าง Ubuntu 14.04 โดยทำการตั้งค่า Interface ในส่วนของ IPv6 ดังนี้
      1. เปิดไฟล์ /etc/network/interfaces
        sudo vim /etc/network/interfaces
      2. ทำการแก้ไขโดยเพิ่มในส่วนของ IPv6 Config ดังนี้ (xxx คือ censor นะครับ)
        iface eth0 inet6 static
                pre-up modprobe ipv6
                address 2001:xxxxxxxx:101
                netmask 64
                gateway 2001:xxxxxxxx::1
        
      3. สั่ง Restart เครื่องเป็นอันเรียบร้อยครับ
        sudo reboot
      4. สามารถตรวจสอบผ่านคำสั่ง ifconfig ได้ดังนี้ครับ
        ifconfig
    • อย่าลืมตรวจสอบ Firewall ด้วยนะครับ แต่โดยปกติ Ubuntu จะไม่มี Firewall ตั้งแต่เริ่มติดตั้ง อาจจะต้องระวังในกรณีที่ Gateway ของหน่วยงานยังไม่ได้ตั้งค่า IPv6 Firewall อาจโดน ssh จากข้างนอกได้ครับ (ลองศึกษาเพิ่มเติมเกี่ยวกับ Shorewall IPv6 หรือ ip6tables ดูครับ) ซึ่งจะมีผลกับเครื่องที่จดชื่อแล้วซะมากกว่า เพราะจะให้ Scan หา IPv6 เยอะ ๆ เพื่อจะเข้าผ่าน IPv6 ตรง ๆ น่าจะลำบากอยู่
  • รวมวิธีการเปิดใช้งาน IPv6

    “บทความนี้เป็นบทความเกี่ยวกับวิธีการเปิดใช้งาน  IPv6 สำหรับบริการที่เป็น Web Server รวมถึงวิธีการตรวจสอบ Client และ Server ว่าพร้อมหรือยังที่จะใช้งาน  IPv6”


    Blog 1 : การตรวจสอบสถานะการใช้งาน IPv6 สำหรับ Client และ Server


    Blog 2การตั้งค่า Interface สำหรับ Windows Server


    Blog 3 : การตั้งค่า Interface สำหรับ Ubuntu Linux


    Blog 4 : การตั้งค่า Interface สำหรับ CentOS/Redhat Linux


    Blog 5 : การตั้งค่า Apache Web Server สำหรับ Ubuntu Linux


    Blog 6 : การตั้งค่า Lighttpd Web Server สำหรับ CentOS Linux


    Blog 7 : การตั้งค่า Nginx Web Server สำหรับ Ubuntu Linux


  • วิธีการปิดช่องโหว่ Logjam,Freak,Poodle,Beast สำหรับ Lighttpd Web Server (Ubuntu 14.04 LTS)

    “จะทำอย่างไรทีดีกับช่องโหว่ SSL เยอะซะเหลือเกิน ปิดใช้แต่ TLS ก็ได้นิ นั่นสินะ”

    • อย่างที่ข้างบนกล่าวไว้ครับวิธีการปิดช่องโหว่นี้ทำง่าย ๆ แค่ปิด SSLv2 SSLv3 และปิด Cipher Suite ที่ไม่ปลอดภัยเพิ่มเติม
    • ก่อนที่จะทำการปิดช่องโหว่ลองทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server ก็จะได้ดังรูปตัวอย่างนี้ (จะเห็นได้ว่ามีช่องโหว่หลายตัว)

    2015-11-11_134128

    • วิธีการปิด SSL ทำได้โดยแก้ไขไฟล์ /etc/lighttpd/conf-enabled/10-ssl.conf ดังนี้
      sudo vim /etc/lighttpd/conf-enabled/10-ssl.conf
    • ทำการแก้ไขไฟล์โดยทำการเพิ่มท้าย ๆ ไฟล์ ก่อนปิดวงเล็บดังนี้ (อย่าลืม comment cipher-list เดิมทิ้งก่อนนะครับ)
      ssl.use-compression = "disable"
      ssl.use-sslv2 = "disable"
      ssl.use-sslv3 = "disable"
      ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES128+EECDH:AES128+EDH"
    • จากนั้นทำการ Restart Lighttpd Server ตามปกติ
      sudo /etc/init.d/lighttpd restart
    • ทำการทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server อีกครั้งก็ได้ดังรูป

    2015-11-11_140552

    • เป็นอันว่าเรียบร้อยครับ (เรื่อง Grade ไม่ต้อง Serious นะครับ ผมถือว่าเขียวหมดก็ถือว่าปลอดภัยแล้วครับ
    • สามารถอ่านวิธีแก้ไขช่องโหว่เพิ่มเติมได้ที่นี่ครับ
      http://sysadmin.psu.ac.th/2015/11/10/serversecuritypatch