Category: Operating System

  • การตั้งค่า 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 ตรง ๆ น่าจะลำบากอยู่
  • การตั้งค่า Interface IPv6 สำหรับเครื่อง Windows Server

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

    • สำหรับวิธีเปิดใช้งาน IPv6 บน Windows เป็นเรื่องง่ายมาก แค่ตั้งค่า Interface ในส่วนของ IPv6 ดังตัวอย่าง

    2015-12-08_152152 2015-12-08_152218 2015-12-08_152336

    • เท่านี้ก็เรียบร้อยครับ ในส่วนของ DNS ถ้าไม่ทราบสามารถลอง nslookup จาก dns (ที่ได้จดชื่อ IPv6 ไว้แล้ว) ดังตัวอย่างในรูปครับ (ขออภัย censor เยอะหน่อยครับ)

    2015-12-08_153053

    • สำหรับ Web Server อย่าง IIS ใน Windows ไม่ต้องแก้ไขอะไรครับ แต่ถ้าเป็น Apache อันนี้ยังไม่ได้ลองครับ
    • อย่าลืมนะครับ Firewall สำหรับ IPv6 จะแยกกับ IPv4 ในกรณีที่ตั้งระบุการเข้าถึงจาก IP ต้นทาง ปลายทางต้องทำการเพิ่มเข้าไปใน Firewall ด้วยครับ
  • รวมวิธีการเปิดใช้งาน 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
  • วิธีการปิดช่องโหว่ 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
  • วิธีการปิดช่องโหว่ Logjam,Freak,Poodle,Beast สำหรับ Windows Server 2008 / 2008 R2 / 2012 / 2012 R2

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

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

    2015-11-11_104537

    2015-11-11_054809 2015-11-11_054929

    • จากนั้นทำการ Reboot อีกครั้ง
    • ทำการทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server อีกครั้งก็ได้ดังรูป

    2015-11-11_112904

  • วิธีการปิดช่องโหว่ Logjam,Freak,Poodle,Beast สำหรับ Windows Server 2003 R2

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

    • อย่างที่ข้างบนกล่าวไว้ครับวิธีการปิดช่องโหว่นี้ทำง่าย ๆ แค่ปิด SSLv2 SSLv3 และปิด Cipher Suite ที่ไม่ปลอดภัยเพิ่มเติม
    • แต่สำหรับ Windows Server 2003 เนื่องจากไม่รองรับ Cipher Suite ที่ปลอดภัยบางตัว จึงต้องทำการรัน hotfix ก่อน โดยสามารถโหลดได้ที่นี่ (อย่าลืมเลือกให้ตรง platform x86 x64 นะครับ)
      https://support.microsoft.com/en-us/kb/948963
    • ก่อนจะรัน hotfix ลองทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server ก็จะได้ดังรูปตัวอย่างนี้ (จะเห็นได้ว่า Grade ร้ายแรงมาก)

    2015-11-11_053418

    • เมื่อโหลดไฟล์เรียบร้อยแล้วทำการแตก zip และ run ด้วยสิทธิ์ administrator ดังรูป

    2015-11-11_0537382015-11-11_053830

    • หลังจากนั้นเลือก Finish และทำการ Restart เครื่อง
    • จากนั้นทำการโหลดโปรแกรมจาก web https://www.nartac.com ดังนี้
      https://www.nartac.com/Downloads/IISCrypto/IISCrypto.exe
    • จากนั้นรันโปรแกรมดังรูป

    2015-11-11_054809 2015-11-11_054929

    • จากนั้นทำการ Reboot อีกครั้ง
    • ทำการทดสอบ test ความปลอดภัย ที่ website https://ssltest.psu.ac.th/server อีกครั้งก็ได้ดังรูป

    2015-11-11_055801

    • จะเห็นได้ว่ายังได้ Grade F (จริง ๆ ถ้าเป็น Windows 2008 R2 ขึ้นไปจะได้ A เนื่องจากรองรับ TLS 1.2) เนื่องจากช่องโหว่ POODLE(TLS) ไม่สามารถแก้ได้ เพราะจะแก้ได้ต้องปิด TLS 1.0 ใช้ TLS 1.2 ขึ้นไป ซึ่งจะ Windows 2003 และ Windows 2008 (ไม่มี R2) รองรับได้แค่ TLS 1.0 จึงแนะนำให้รีบเปลี่ยน Windows Server OS เป็น Windows 2008 R2 ขึ้นไปเพื่อความปลอดภัย

    2015-11-11_065251

    • จากรูปข้างบนซึ่งเป็น Windows 2003 เช่นกัน “สันนิษฐานว่า” อาจเพราะว่า เครื่องนี้ได้ Windows Update จึงทำให้ไม่มีช่องโหว่ ถ้า Update ถึงระดับนึง ทาง Microsoft น่าจะปิดช่องโหว่ POODLE (TLS) เรียบร้อยแล้ว
    • ต้องแยกกันนะครับระหว่างเปิด TLS 1.0 กับ มีช่องโหว่ เพราะมีอีกหลายปัจจัย เพราะ TLS เป็นแค่ Protocol แต่กระบวนการที่เหลือทั้งวิธีการเข้ารหัส วิธีการแลกเปลี่ยน Key เป็นปัจจัยหนี่งของช่องโหว่ รวมถึงช่องโหว่จากบริการในเครื่องที่ใช้ TLS 1.0 ในการรับส่งข้อมูล แต่ถ้าปิด Protocol ตั้งแต่ต้นก็จะมั่นใจได้มากกว่า เพราะไม่แน่ว่าอนาคตอาจมีช่องโหว่เกี่ยวกับ TLS 1.0 ออกมาอีก
    • แต่การปิด TLS 1.0 จะกระทบกับ Browser ค่อนข้างมาก โดยเฉพาะ window xp,vista
    • อ่านเพิ่มเติมได้ที่นี่ครับ
      https://www.blognone.com/node/63653
      https://en.wikipedia.org/wiki/Template:TLS/SSL_support_history_of_web_browsers
    • สามารถอ่านวิธีแก้ไขช่องโหว่เพิ่มเติมได้ที่นี่ครับ
      http://sysadmin.psu.ac.th/2015/11/10/serversecuritypatch
  • การแก้ไข 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
        

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