Category: Linux (OS, shell script, etc)

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

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

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

    2015-11-11_131008

    • วิธีการปิด SSL ทำได้โดยแก้ไขไฟล์  /etc/apache2/mods-enabled/ssl.conf ดังนี้
      sudo vim /etc/apache2/mods-enabled/ssl.conf
    • ทำการแก้ไขไฟล์ดังนี้ (จะ Comment SSLCipherSuite กับ SSLProtocol แล้วเพิ่มตรงท้าย ๆ ก่อน tag ปิด </IfModule> ก็ได้ครับ)
      SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
      SSLHonorCipherOrder on
      SSLProtocol all -SSLv3 -SSLv2
      SSLCompression off
    • จากนั้นทำการ Restart Apache Server ตามปกติ
      sudo /etc/init.d/apache2 restart
    • ทำการทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server อีกครั้งก็ได้ดังรูป

    2015-11-11_132628

    • เป็นอันว่าเรียบร้อยครับ
    • ถ้าใครต้องการให้ได้คะแนนถึง A+ ให้ทำเพิ่มตามลิงก์ของคุณเกรียงไกรดังนี้ครับ (อ่านเฉพาะส่วนของการปรับ Header นะครับ)
      https://sysadmin.psu.ac.th/2014/12/18/เปลี่ยน-certificate
  • การแก้ไข Certificate สำหรับ Lighttpd Web Server (Ubuntu 14.04 LTS)

    “อยากแก้ Certificate บน Linux Lighttpd Server ทำอย่างไร”

      • ในกรณีที่มีไฟล์ Certificate อยู่แล้วให้ทำการวางไฟล์ Certificate ใหม่ทับแล้วสั่ง Restart Apache Server เป็นอันเสร็จครับ (สำหรับการเปลี่ยน Certificate มีแค่ขั้นตอนนี้จบเลยครับ)
      • ในกรณีที่ยังไม่ได้ติดตั้ง https รวมถึง Certificate ให้ทำการติดตั้ง https ก่อนดังนี้
        sudo lighttpd-enable-mod ssl
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service lighttpd restart
      • ทำการวางไฟล์ Certificate ไว้ในตำแหน่งที่ Lighttpd สามารถเข้าถึงได้ ในกรณีที่ที่นี้ผมจะวางไว้ที่ /etc/cer
      • ในกรณีที่ได้มาเป็นไฟล์ .cer และไฟล์ .key มาต้องการทำไฟล์ .pem สามารถพิมพ์คำสั่งดังนี้
        sudo cat [file_cer_name].key [file_cer_name].crt > [file_cer_name].pem
      • ทำการแก้ไขไฟล์ 10-ssl.conf ดังนี้
        sudo vim /etc/lighttpd/conf-enabled/10-ssl.conf
      • โดยส่วนที่ทำการเปลี่ยนแปลงจะทำการเปลี่ยน 1 บรรทัดดังนี้
        ssl.pemfile = "/etc/cer/[file_cer_name].pem"
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service lighttpd restart

    เป็นอันเสร็จครับ ง่ายมากจริง ๆ ครับ

  • การแก้ไข Certificate สำหรับ Apache Web Server (Ubuntu 14.04 LTS)

    “อยากแก้ Certificate บน Linux Apache Server ทำอย่างไร”

      • ในกรณีที่มีไฟล์ Certificate อยู่แล้วให้ทำการวางไฟล์ Certificate ใหม่ทับแล้วสั่ง Restart Apache Server เป็นอันเสร็จครับ (สำหรับการเปลี่ยน Certificate มีแค่ขั้นตอนนี้จบเลยครับ)
      • ในกรณีที่ยังไม่ได้ติดตั้ง https รวมถึง Certificate ให้ทำการติดตั้ง https ก่อนดังนี้
        sudo a2enmod ssl
        sudo a2ensite default-ssl
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service apache2 restart
        
      • ทำการวางไฟล์ Certificate ไว้ในตำแหน่งที่ Apache สามารถเข้าถึงได้ ในกรณีที่ที่นี้ผมจะวางไว้ที่ /etc/apache2/cer
      • ทำการแก้ไขไฟล์ default-ssl.conf ดังนี้
        sudo vim /etc/apache2/sites-enabled/default-ssl.conf
      • โดยส่วนที่ทำการเปลี่ยนแปลงจะทำการเปลี่ยน 3 บรรทัดดังนี้
        SSLCertificateFile /etc/apache2/cer/[cer-file-name].crt
        SSLCertificateKeyFile /etc/apache2/cer/[cer-file-name].key
        SSLCertificateChainFile /etc/apache2/cer/[cer-file-name].ca-bundle
      • จากนั้นให้สั่ง Restart Apache ตามปกติ
        sudo service apache2 restart
        

    เป็นอันเสร็จครับ ง่ายมากจริง ๆ ครับ

  • วิธีการตรวจสอบระดับความปลอดภัยของ Certificate

    “เราสามารถมั่นใจได้อย่างไรว่า Certificate ที่ใช้อยู่มีความปลอดภัยเพียงพอ”

      • ในกรณีนี้เหมาะกับท่านที่มี Certificate ที่ซื้อมาเอง หรือมีการ Trust กันภายในองค์กร ในกรณีที่เป็น Self Sign Certificate แบบออกเอง ใช้เองไม่จำเป็นต้องเปลี่ยนครับ (เพราะไม่น่าเชื่อถืออยู่แล้วครับ) ใครต้องการเปลี่ยนไปใช้ Public Certificate ต้องตรวจสอบก่อนครับว่าเข้าเงื่อนไขของ Certificate นั้นหรือเปล่า เช่น *.psu.ac.th ถ้าเป็น www.cc.psu.ac.th อันนี้ใช้ไม่ได้ครับ
      • ปกติเราสามารถตรวจสอบง่าย ๆ ได้อยู่แล้วผ่าน Browser ที่ใช้อยู่ ยกตัวอย่าง Chrome สามารถอ่านรายละเอียดเพิ่มเติมได้ที่นี่ครับ
        https://support.google.com/chrome/answer/95617?hl=th
      • สำหรับ Certificate ที่แนะนำจะเป็น SHA-2 ขึ้นไป ซึ่งไม่แนะนำ SHA-1 เพราะไม่แข็งแรงพอ และจะสิ้นสุดระหว่างในปี 2016-2017 นี้ อ่านเพิ่มเติมได้ที่
        https://community.qualys.com/blogs/securitylabs/2014/09/09/sha1-deprecation-what-you-need-to-know
      • ในส่วนของ Windows Server สามารถตรวจสอบโดยการเข้า IIS จากนั้นกดดูในส่วนของ Certificate
      • ในส่วนของ Linux ก็สามารถดูได้โดยกดดู Certificate จาก Browser ครับ

    2015-11-10_0617452015-11-10_055328

    2015-11-10_055735

      • Web ไหนยังใช้ SHA-1 รีบเปลี่ยนไปใช้ SHA-2 กันดีกว่าครับ แต่ SHA-2 รองรับ Windows XP SP3 ขึ้นไปเท่านั้นครับ หน่วยงานใดยังใช้ XP อยู่แนะนำให้ Upgrade เป็น SP3 หรือไม่ก็เปลี่ยนไปใช้ Windows 7/8/8.1/10 ก็ได้ครับ
      • สามารถอ่านบทความเกี่ยวกับรวมวิธีลดช่องโหว่ Server เพิ่มเติมได้ที่นี่ครับ
        http://sysadmin.psu.ac.th/2015/11/10/serversecuritypatch
  • ตรวจสอบความปลอดภัย web server https โดย Qualys

    “จะตรวจสอบได้อย่างไรว่า Web Server ที่ให้บริการ https มีความปลอดภัยเพียงพอ”

    บทความนี้จะอธิบายวิธีการใช้งานและการอ่านค่าคร่าว ๆ ของ Web Qualys ดังนี้

    • เข้า Web Site https://www.ssllabs.com/ssltest จะปรากฏหน้าต่างให้ใส่ Domain Name ที่ต้องการตรวจสอบ ถ้าไม่ต้องการให้โชว์ผลขึ้น Score Board ประจานให้ทั่วโลกเห็น(อันนี้ห้ามคนอื่นกดไม่ได้นะครับ) ให้ติก Do not show the results on the boards จากนั้นกด Submit

    2015-11-10_044047

    • จากนั้นระบบจะทำการตรวจสอบประมาณ 1-2 นาที โดย Web Site ที่สามารถตรวจสอบได้ต้องสามารถเข้าถึงจากภายนอกเท่านั้น
    • จากนั้นจะปรากฎหน้าผลลัพธ์ในรูปแบบ Overall Rating ดังนี้

    2015-11-10_045236

    • ในส่วนแรกคือ Summary อธิบายเป็นส่วน ๆ ได้ดังนี้
    1. Overall Rating :  จะเป็นตัวบอกคร่าว ๆ ว่า Web นี้มีความปลอดภัย Grade อะไรซึ่งจากรูปได้ F แสดงว่าไม่ปลอดภัยอย่างมาก
    2. จะอธิบายเพิ่มเติมโดยแยกเป็น 4 ส่วนคือ
      Certificate - ระดับความแข็งแรงของใบประกาศ (ยากในการปลอมหรือในการถอดรหัสข้อมูล)
      Protocol Support - ระดับความปลอดภัยของ Protocol ที่ให้บริการ SSL/TLS
      Key Exchange - ระดับความปลอดภัยของการแลกเปลี่ยน Key
      Cipher Strength - ระดับความแข็งแรงของ Cipher ซึ่งเป็น Algorithm ที่ใช้ในการเข้ารหัส
      
    3. ในส่วนนี้จะอธิบายลึกลงไปว่ามีผลทำให้เกิดช่องโหว่ร้ายแรงอะไรบ้าง โดยจะบอกว่าเกิดจากอะไร เช่น จากรูป Server รองรับ SSL Version 2 ซึ่งยกเลิกการใช้งานไปแล้วเพราะไม่ปลอดภัย, เกิดช่องโหว่ FREAK, POODLE TLS โดยเราสามารถอ่านรายละเอียดเพิ่มเติมโดยการกด More Info
    4. จะอธิบายรายละเอียดเพิ่มเติม แต่ถือว่าเป็นระดับที่ยังไม่ร้ายแรง แต่แนะนำให้แก้ไข เช่น จากรูปแนะนำให้เลิกใช้ SSL Version 3 ส่วน TLS ควรใช้ Version ล่าสุดซึ่งเป็น TLS 1.2
    • โดยเราสามารถเลื่อนมาดูรายละเอียดเพิ่มเติมได้ ซึ่งจะมีบอกในส่วน Handshake Simulation ซึ่งจะตรวจสอบให้คร่าว ๆ ว่า Browser ใดไม่รองรับบ้าง

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

    http://sysadmin.psu.ac.th/2015/11/10/serversecuritypatch

    Reference : https://www.ssllabs.com, Qualys SSL LABS

  • รวมวิธีลดช่องโหว่ Server

    “บทความนี้เป็นบทความเกี่ยวกับวิธีการปิดช่องโหว่ รวมถึงวิธีการ Monitor ตรวจสอบช่องโหว่ด้วยโปรแกรมต่าง ๆ ครับ”


    วิธีการตรวจสอบช่องโหว่

    Blog 1 : ตรวจสอบความปลอดภัย web server https โดย Qualys


    Blog 2วิธีการตรวจสอบระดับความปลอดภัยของ Certificate


    วิธีการแก้ไข Certificate เพื่อให้มีความปลอดภัยมากขึ้น

    Blog 1 : Windows Server 2003 R2


    Blog 2 : Windows Server 2008 / 2008 R2 / 2012 / 2012 R2


    Blog 3 : Apache Web Server (Ubuntu 14.04 LTS)


    Blog 4 : Lighttpd Web Server (Ubuntu 14.04 LTS)


    วิธีการปิดช่องโหว่ Logjam,Freak,Poodle,Beast

    Blog 1 : Windows Server 2003 R2


    Blog 2 : Windows Server 2008/2008 R2/2012/2012 R2


    Blog 3 : Apache Web Server (Ubuntu 14.04 LTS)


    Blog 4Lighttpd Web Server (Ubuntu 14.04 LTS)


    อ่านวิธีแก้ไขเพิ่มเติมได้ที่ : http://disablessl3.com/

  • ตั้งค่าให้ใช้ IPv6 ที่ Firefox web browser

    เรื่องนี้สืบเนื่องมาจากผมใช้ Linux Mint และจะทดสอบว่า network ที่ทำงานสามารถใช้งานเว็บไซต์ที่รองรับ IPv6 แล้วได้หรือไม่ พบว่า ไม่สามารถเข้าถึงได้

    ff-linuxmint-02

    ลองทดสอบกับ Firefox บน Windows อ้าว ใช้งานได้  และในขณะเดียวกัน Google Chome ใช้ได้ทั้งบน Linux และ Windows

    ค้นหาดูใน google search ได้คำตอบว่าหากจะใช้งาน IPv6 ให้ตั้งค่า network.dns.disableIPv6 เป็น false โดยเข้าไปตรวจสอบหรือแก้ไขที่ URL about:config

    จึงตรวจสอบดู พบว่า Firefox บน Linux Mint ตั้งค่าตัวเลือก network.dns.disableIPv6 เป็น true ในขณะที่ Firefox บน Windows เป็นค่า false ซึ่ง ค่า false ทำให้ใช้งานเว็บไซต์ที่เป็น IPv6 ได้

    ff-linuxmint-01

    แก้ไขตั้งค่า network.dns.disableIPv6 เป็น false ทำให้ใช้งานเว็บไซต์ที่เป็น IPv6 ได้

    ff-linuxmint-04

    ผมยังหาคำตอบไม่ได้ว่าทำไมค่า default จึงตั้งไว้อย่างนั้น ซึ่งแตกต่างกันระหว่าง Firefox บน Linux Mint กับ Firefox บน Windows ส่วน Google Chome นั้นไม่มีให้เลือก จึงใช้งานได้ทันทีที่ network ที่ใช้งานรองรับ IPv6

    การทดสอบว่าเครื่องเราใช้งาน IPv6 ได้ สามารถทดสอบได้กับเว็บไซต์
    http://www.v6.psu.ac.th
    http://www.kame.net
    http://whatismyipv6address.com/
    http://test-ipv6.com/

    ff-linuxmint-06

    See also:
    http://techglimpse.com/disable-enable-ipv6-firefox-chrome-browser/
    http://ask.xmodulo.com/disable-ipv6-linux.html

  • Dual Boot Ubuntu 14.04 & Windows 8.1 in UEFI

    • เหตุการณ์สมมติจึงใช้ VirtualBox
    • ตั้งค่า VirtualBox ดังภาพ (ขอข้ามวิธีการสร้างเครื่องใหม่บน VirtualBox ไปเลยนะครับ คิดซะว่าชำนาญแล้ว โดยขนาด HDD ที่ต้องการ 100GB เป็นอย่างน้อย) โดยเลือก option ที่เขียนว่า Enable EFI (special OSes Only) และในช่อง  Boot Order: ให้เลื่อนเป็น Optical แล้วตามด้วย Hard Disk แล้วกด OK
      uefi1
    • เมื่อเปิดเครื่องจะได้หน้าจอดังภาพ แสดงว่า BIOS ของเรากลายเป็น UEFI เรียบร้อยแล้ว
      uefi2
    • เลือกแผ่น Ubuntu 14.04 ให้ต่อเข้ากับ Device
      uefi3
    • reset เครื่อง
      uefi4
    • เลือก *Try Ubuntu without installing
      uefi5
    • รอจนได้ Windows Manager แล้วดับเบิ้ลคลิก Install Ubuntu 14.04.2 LTS บน Desktop เข้าสู่กระบวนการติดตั้ง Ubuntu ปกติทั่วไปสามารถใช้ Next Technology ได้เลยไปเรื่อยๆ จนถึงหน้า Installation type ให้เลือกหัวข้อ Something else แล้วกด Continue
      uefi6
    • คลิก New Partition Table… คลิก Continue จะได้ดังภาพ
      uefi7
    • คลิกคำว่า free space แล้วคลิกเครื่องหมายบวก (+) สร้าง Partition ขนาด 512MB มีชนิดเป็น EFI boot partition (ควรดูด้วยว่าพาทิชั่นที่ได้เมื่อสร้างเสร็จมีขนาด 512MB จริงๆ โดยใน VM ที่สร้างนี้ตอนสร้างใส่ไป 514MB) และกด + เพื่อสร้าง swap ในตัวอย่างกำหนดแรมไว้ 4GB สามารถสร้าง Swap เท่าแรมได้เลย และ / (root ขนาด 50GB) ตามลำดับโดยจะเหลือพื้นที่เปล่าไว้ด้วย
      uefi8
    • ภาพแสดงพาทิชั่นเมื่อสร้างเสร็จแล้ว
      uefi9
    • คลิก Install Now และคลิก Continue ที่เหลือหลังจากนี้สามารถกลับสู่โหมด Next Technology ได้เลยจนจบ
      uefi10
      uefi11
    • สิ้นสุดคลิก Restart Now
      uefi12
    • เอาแผ่นออกแล้วกด Enter (ปกติจะเอาออกให้อัตโนมัติ)
      uefi13
    • ลองบูตดูจนได้หน้า Log In
      uefi14
    • เลือก Devices แล้ว Optical Drives แล้วเลือกแผ่น Windows 8.1
      uefi15
    • คลิกรูปเฟืองที่มุมบนขวา เลือก Shutdown แล้วคลิก Restart
      uefi16
    • เมื่อ VM กำลัง Shutdown ให้สังเกตุดูว่า โลโก้ Ubuntu หายไปให้รีบ ESC ทันทีจะได้ดังภาพ
      uefi17
    • เลื่อน Cursor ลงมาที่ Boot Manager แล้วกด Enter จะได้ดังภาพ
      uefi18
    • เลื่อน Cursor ลงมาที่คำว่า EFI DVD/CDROM แล้วจะมีข้อความว่า Press any key to boot from CD or DVD….
      uefi19
    • เมื่อกดปุ่มใดๆ จะเข้าสู่วินโดวส์เพื่อเริ่มติดตั้ง
      uefi20
    • เมื่อได้หน้าเลือกภาษาให้เลือกดังภาพ แล้วคลิก Next
      uefi21
    • คลิก Install now
      uefi22
    • คลิกเครื่องหมายถูกหน้าข้อความ I accept the license terms คลิก Next
    • เลือก Custom: Install Windows only (advanced)
      uefi23
    • จะเห็นพื้นที่ดิสก์ที่เราใช้งานอยู่ในตอนนี้จะเห็นว่ามีที่เหลืออยู่ 48GB ที่เป็น Unallocated Space (และถูกเลือกโดยอัตโนมัติไว้อยู่แล้ว) ในตัวอย่างนี้เราจะสร้างเพียงไดรฟ์ซีเพียงอย่างเดียวให้คลิก Next
      uefi24
    • เข้าสู่การติดตั้ง Windows รอไปจนเสร็จ…
      uefi25
    • เมื่อติดตั้ง Windows  เสร็จแล้วจะถูกบังคับเข้าวินโดวส์ทันที Ubuntu หายไปแล้ว… เพราะ Boot Manager ของ Ubuntu ถูกเขียนทับไปนั่นเอง ให้ตั้งค่า Windows ให้เสร็จเรียบร้อยก่อนแล้วชัตดาวน์เครื่อง เลือก Devices แล้วเลือก Optical Drives เลือกแผ่น Ubuntu อีกครั้ง เมื่อได้ Menu ให้เลือก *Try Ubuntu without installing
      uefi26
    • เมื่อได้หน้า Windows Manager กด Ctrl+alt+T พิมพ์ข้อความดังนี้  และในขั้นตอนนี้ต้องแน่ใจว่าเครื่องเชื่อมต่อ Internet ได้เรียบร้อยแล้ว
      sudo add-apt-repository ppa:yannubuntu/boot-repair
      sudo apt-get update
      sudo apt-get install -y boot-repair
    • แล้วต่อด้วยคำสั่ง sudo boot-repair จะได้ดังภาพ
      uefi27
    • คลิกที่ Recommended repair จะได้ดังภาพ ให้รอไปจนเสร็จ
      uefi28
    • เมื่อได้หน้าจอดังภาพกด OK แล้วสั่งรีบูตได้เลยuefi29
    • เมื่อบูตขึ้นมาจะได้หน้าเมนูที่คุ้นเคยสามารถเลือกได้ว่าจะเข้าอะไร
      uefi30
    • จบขอให้สนุกครับ

    อ้างอิงเพิ่มเติม

    https://help.ubuntu.com/community/Boot-Repair