เพื่อให้ Web Server ของเราปลอดภัยจากการถูกโจมตี บทความนี้จะเป็นการแนะนำการกำหนดค่าต่างๆของ web server ที่ให้บริการ ซึ่งทำงานด้วยบน Windows Server และ มีการติดตั้ง IIS, PHP, MySql, ASP.Net และ WordPress
การกำหนดส่วนของ Windows Server อ้างอิงคำแนะนำจาก Quays SSL Labs ให้ได้ระดับ A ขึ้นไป
ใช้ใบรับรองจาก CA ที่น่าเชื่อถือ และ ใช้การ RSA 2048 bits (SHA256withRSA) ขึ้นไป
การป้องกันการเรียกดู user data ผ่าน REST API ใน WordPress กรณีนี้ควรติดตั้งส่วนเสริมไม่ให้สามารถเรียกใช้งานผ่าน REST API โดยไม่มีการยืนยันตัวตนก่อน เช่น Disable WP REST API
Windows Server 2022 รองรับ TLS 1.2 และ TLS 1.3 หมายเหตุ ทั้งนี้ Windows Server 2022 เพิ่มการรองรับ TLS 1.3 อย่างไรก็ตาม หากเปิดใช้งานทั้ง TLS 1.2 และ 1.3 Site Scanner จะส่งผลให้ได้เกรด A เท่านั้น เนื่องจากปัจจุบัน Windows Server ไม่รองรับการป้องกันการโจมตีแบบดาวน์เกรด หากไคลเอนต์ร้องขอ TLS 1.3 Windows จะยังคงอนุญาตให้ปรับไปใช้ TLS 1.2 ได้ และนั่นคือสาเหตุที่ Site Scanner รายงานเกรด A แทนที่จะเป็น A+
ใช้ plugin ชื่อว่า WPO365 วิธีการตั้งค่าเพื่อใช้งาน single sign on ของ Microsoft365 ในการล็อคอินเข้าระบบของ WordPress
Authentication
ต้องเซ็ต HTTPS ที่เว็บให้เสร็จเรียบร้อย
สำคัญ!!! จำเป็นต้องมีสิทธิ์ Global Administrator บน Azure
Login เข้าเว็บ https://portal.azure.comมองหา Azure Active Directory
ซ้ายมือเลื่อนหาคำว่า App registrations
คลิก + New registration แล้วกรอกชื่อที่ต้องการในช่อง Name ในส่วนของ Supported account types เลือก Accounts in this organizational directory only (Prince of Songkla University only – Single tenant)
เป็น CMS Web Server อย่างง่าย ไม่มี database ติดตั้งลงใน OS ที่เป็น Ubuntu Server 20.04 ที่ได้ติดตั้ง apache2 web server (เปิด port 80) พร้อม php ไว้แล้วด้วยคำสั่ง sudo apt install apache2 php php-xml
ขั้นตอน
ไปที่เครื่อง Ubuntu Desktop ของเรา เข้าเว็บเบราว์เซอร์ OpenNebula Sunstone และเปิด VM ที่เป็น Ubuntu Server (สมมติว่า VM มี IP 172.16.100.3)
เปิดเพจของ CMSimple
ดาวน์โหลด CMSimple_5-3.zip
ใช้คำสั่ง scp คัดลอกไฟล์ไปไว้ใน VM scp CMSimple_5-3.zip papa@172.16.100.3 เสร็จแล้ว ssh เข้าไปใน VM ssh papa@172.16.100.3
คลิก Where there is a shortcode เพื่อให้ code ทำงานเฉพาะหน้าที่มีการระบุ shortcode แต่หากต้องการให้ code นี้ทำงานทุกหน้าสามารถคลิกที่ Run everywhere และสามารถเขียนคำอธิบายได้ในช่อง Description