เรื่องของ Security ยุคนี้มองข้ามกันไม่ได้เลยทีเดียว ผู้บุกรุกเยอะมาก พยายามกันทุกวิธีทาง ทุกหนทาง หลอกกันทุกรูปแบบจริงๆ ดังนั้น เมื่อเราทำการติดตั้ง WordPress เรียบร้อยแล้ว Set ค่าต่างๆ ของเว็บไซต์ อย่างที่ต้องการแล้ว ก็ต้องจัดการเรื่องของ Security ในทันที อย่าปล่อยทิ้งเอาไว้เนิ่นนาน ไม่เป็นผลดีอย่างแน่นอน ซึ่ง WordPress Plugin ที่เกี่ยวข้องกับเรื่องของ Security มีมากมายหลายตัว ให้เราเลือกใช้งานได้ตามความพอใจ และในวันนี้จะนำเสนอ Plugin ตัวที่ชื่นชอบ และใช้งานได้ดี นั่นก็คือ All In One WP Security & Firewall
เล่าให้ฟัง ครั้งหนึ่งเมื่อนานมาแล้ว นานหลายปี แต่ไม่ถึง 5 หรอกนะ เคยติดตั้งเว็บไซต์ WordPress ไว้เล่นๆ บน Host กะว่า เดี๋ยวค่อยมาติดตั้ง Plugin ต่างๆ ในภายหลัง เพราะมืดค่ำแล้ว ง่วงนอน ปรากฏว่า 2 วันให้หลัง เพิ่งจะรู้ตัวว่าเว็บไซต์ของเราถูกเจาะเรียบร้อย พร้อมกับแปะไว้หน้าแรกเลยว่า โดน Hack แล้วนะ แม้จะใช้ WordPress Version ล่าสุดในเวลานั้นก็ตาม น่าจะเป็นเพราะ admin user ยังใช้ค่าตั้งต้น หรือ default ของระบบ ชื่อ admin ก็เลยง่ายในการเจาะ แม้จะไม่ได้ตั้ง Password ง่ายๆ อย่าง 123456 ก็ตาม สุดท้าย จึงลบไฟล์ WordPress ทิ้งทั้งหมด เพราะอาจจะถูกฝัง backdoor ไว้อีก ตั้งแต่นั้นมาเลยจำเป็นบทเรียน ติดตั้ง WordPress เสร็จ ก็จะติดตั้ง Security Plugin ทันที
Security Plugin ไม่ใช่ผู้วิเศษ ที่จะหยุดยั้ง บรรดาผู้บุกรุกได้อย่างราบคาบ หมดจดแต่อย่างใด เพียงแค่ช่วยลดความเสี่ยงลงเท่านั้น เพราะ Plugin ที่เราติดตั้งไว้ โดยเฉพาะที่หมดอายุไปแล้ว เก่ามากแล้ว ไม่มีการ Update ใดๆ ยิ่งตอนนี้ เป็นช่วงเปลี่ยนผ่าน PHP เวอร์ชั่น 5.x ไป 7.x ด้วยแล้ว Plugin เก่าๆ ก็ยิ่งมีความเสี่ยง สรุป แค่ต้องการจะบอกว่า อย่าไว้วางใจ แม้จะติดตั้ง Security Plugin ไปแล้วก็ตาม อ้อ การติดตั้ง Security Plugin แบบฟรีๆ ทั้งหลายนี้ ไม่สามารถยับยั้ง DDOS ได้นะครับ ถ้าโดนโจมตีก็ล่มแน่นอน

ไม่เว้นแม้กระทั่งวันที่เขียนบทความนี้ และติดตั้ง Security Plugin ไว้แล้ว เมื่อกลับไปดู Stat ของ Hosting ก็ยังพบ Link ประหลาดๆ โผล่เข้ามาเป็น Link จากภายนอก ซึ่งทำ link มายังเว็บไซต์ของเรา ซึ่งเดาได้ไม่ค่อยยากว่า จะเป็นอย่างไรถ้าเราคลิกที่ Link นี้ ไปยังเว็บไซต์เหล่านั้น โดยที่เรายัง Login เข้าหน้า Back end ของ WordPress บนเว็บไซต์ของเราค้างเอาไว้อยู่ ชื่อไฟล์มันฟ้องซะขนาดนี้ wp-login.php
เป็นไปได้ว่าเว็บเหล่านั้นจะดักจับ cookie ของเว็บไซต์เรา ที่เรา Login ระบบ Admin ค้างเอาไว้ แล้ว submit ส่งให้ผู้ไม่ประสงค์ดีทันที ที่เราคลิก Link ประหลาดๆ เหล่านั้น ดังนั้น ถ้าเห็น Link ประหลาดๆ ใน Stats ของเรา ก็อย่าคลิกสุ่มห้าสุ่มหกไป บางทีเราก็จะตกหลุมพลางง่ายๆ เหล่านี้ได้เหมือนกัน
เอาล่ะ กลับมายังเรื่องของ Security Plugin ของ WordPress กันต่อ เนื่องจาก Plugin เหล่านี้มีจำนวนมากมายหลายตัว ซึ่งแต่ละตัวนี้ มีผู้นิยมใช้ไม่น้อยเลย ถ้าเราไปค้นหาใน Search engine ก็จะพบกับความเห็นที่หลากหลายมากๆ แนะนำ และโน้มน้าวกันอย่างสนุกสนาน ว่าตัวนั้น ตัวนี้ดี จนกระทั่งบางคนระบุด้วยซ้ำว่า ไม่ต้องติดตั้งหรอก เพราะ Plugin แต่ละตัว ก็มีช่องโหว่ด้วยกันทั้งนั้น ดังนั้น ก็แล้วแต่ท่านๆจะพิจารณากันก็แล้วกัน แต่วันนี้จะแนะนำ All In One WP Security & Firewall อย่างที่กล่าวไว้ว่า ผูกผันกับตัวนี้มาแต่ไหนแต่ไร

Security Plugin ของ WordPress มีอยู่เป็นจำนวนมากอย่างที่เห็น ที่นิยมที่สุดก็หนีไม่พ้น Wordfence ที่มีผู้ ใช้งานอยู่มากกว่า 1 ล้านเว็บ ส่วน All In One WP Security & Firewall มีอยู่ 7 แสนเว็บ ซึ่งก็ไม่น้อยกว่ากันนัก (เข้าข้างตัวเองน่ะนะ) จัดการติดตั้ง และ Active ได้เลย

เข้ามาสู่หน้า Dashboard เมื่อเราเข้าสู่หน้า Setting ของ Plugin บอกความแข็งแรง ของการตั้งค่า Security เป็นรูปมิเตอร์กลมๆ แบบเข้าใจง่าย ซึ่งขณะนี้ ของผมอยู่ที่ 345 จาก 505 แล้วทำไมไม่ใส่ไปเต็มๆ เอาคะแนนเต็มล่ะ คำตอบคือ ค่อยๆ ลอง ค่อยๆ ทดสอบไปครับ อันไหนไม่เห็นว่า จำเป็น ก็ตัดทิ้งไป ถ้าเราไปตามล่าหาการตั้งค่าใน Internet จาก guru กูรู้ ทั้งหลาย จะพบว่า คำแนะนำแต่ละเว็บไม่ตรงกันเลย นั่นก็เพราะความรู้สึก ความคิดเห็น ของแต่ละคนไม่เหมือนกัน บางคนคิดว่าจำเป็น แต่อีกหลายคนบอกว่า ไม่ช่วยอะไร ก็เลยข้ามไป มันก็เป็นเช่นนั้น ดังนั้น วันนี้จะแนะนำเฉพาะเจาะจงว่า ต้องมี และสมควรปรับตั้งค่าเอาไว้ และเพียงพอ แข็งแรงต่อการบุกรุกแล้ว ส่วนนอกเหนือจากนี้ ขอให้ไปค้นหากันต่อเองแล้วกัน

WordPress แต่ละเวอร์ชั่น ก็จะมี Bug อยู่อย่างแน่นอน แต่ใครจะรู้ก่อนกันระหว่างผู้พัฒนา กับผู้ไม่หวังดี และรายละเอียด Version ของ WrodPress ที่เราติดตั้งไว้ จะถูกแสดงเอาไว้อยู่ใน Code ของเว็บเราด้วย ดังนั้น เพื่อความมั่นใจว่า ผู้บุกรุก จะไม่สามารถได้ข้อมูล Version ของ WordPress เราไปได้ง่ายๆ ก็ลบ Info ตัวนี้ทิ้งไปซะ ทำเครื่องหมายที่ Remove WP Generator Meta Info แล้วเราจะได้มา 5 คะแนน เป็น 5 เต็ม 5 ซึ่ง All In One WP Security & Firewall จะคิดคะแนนให้ในการตั้งค่าของแต่ละส่วน ถ้าส่วนไหนมีคะแนนมากๆ นั่นหมายความว่า ส่วนนั้น มีความสำคัญมากๆ อย่างตัวอย่างแรกนี้ มีเพียงแค่ 5 คะแนน ซึ่งเป็นคะแนนต่ำสุดของการตั้งค่าแล้ว แสดงว่า ส่วนนี้ไม่สำคัญมาก แต่ก็ลบไปเถอะ เพื่อความสบายใจ

ส่วนแรกที่สมควรจัดการก่อนเพื่อน คือส่วนของการ Login เข้าสู่หน้า Admin ของระบบ หรือ Back end ของระบบ WordPress ซึ่งในส่วนนี้ มีคะแนนถึง 20 คะแนน บ่งบอกได้ว่า สำคัญมาก ดังนั้น อย่านิ่งเฉย เซ็ตค่าตามรูปได้เลย ซึ่งเข้ามาหน้านี้โดยเมนูทางด้านซ้าย WP Security – User Login
คำอธิบายก็คือ Enable Login Lockdown Feature ตัวเลือกนี้ต้องติ๊ก เพื่อจะเปิดใช้งาน ถัดมา Max Login Attempts คือ จำนวนครั้งสูงสุดที่อนุญาตให้ Login ได้ ถ้าเกินจากนี้จะล็อค IP นั้นเอาไว้ (จะบอกว่าตั้งเอาไว้ 3 นี่ บางทีตัวเองยังพลาด โดน Lock IP ไว้เลย ไม่ต้องผู้บุกรุกหรอก เพราะความมือไว รีบพิมพ์ บางทีก็ผิด) ถัดมา Login Retry Time Period (min) ถ้าพยายามลอง Login จนถึงจำนวนครั้งสูงสุดที่อนุญาต ในที่นี้คือ 3 แล้ว และอยู่ภายในระยะเวลาที่กำหนดนี้ ในที่นี้คือ 5 min หรือ 5 นาที ก็จะถูกล็อค IP เช่นกัน ถัดมา Time Length of Lockout (min) เป็นการกำหนดระยะเวลา ให้กับ IP ที่เกิดการ Login ผิดปกติ ไม่สามารถ Login ได้อีก จนกว่าจะพ้นระยะเวลาที่กำหนด ในที่นี้คือ 60 min หรือ 60 นาที นั่นเอง ส่วน Instantly Lockout Invalid Usernames เป็นการกำหนดเอาไว้ว่า ถ้า Username ที่ถูกป้อนในหน้า Login ถูกป้อนมาแบบมั่วๆ เช่น Admin ซึ่งไม่เคย User name นี้ใน database ของเรา ระบบก็จะระงับไป โดยอัตโนมัติ ตัวตั้งค่าสุดท้ายในส่วนนี้ Instantly Lockout Specific Usernames จะเป็นการบอกกับระบบว่า ถ้ามีรายชื่อดังนี้มา Login ในระบบของเรา ก็ให้ระงับไปซะดื้อๆ เลย อย่ารีรอ ใครจะระงับ ไม่ให้ใช้ชื่อ yaya หรือ nadech มา Login เว็บไซต์เราได้ ก็ใส่ไปตรงนี้นะ จากนั้นก็ Save Settings เป็นอันจบ

แถบถัดมาเป็น Failed Login Records ซึ่งระบบจะแสดงรายการ IP ที่ Login เข้ามาในช่วงเวลาต่างๆ และ Login ผิด ซึ่งถูกเก็บเป็น Log แบบนี้ให้เราพิจารณา และระมัดระวังตัวเอาไว้

Rename Login Page Settings ต้องไปที่ เมนู WP Security – Brute Force , ตามปกติ WordPress จะเข้าสู่หน้า Login ด้วย https://9wit.com/wp-admin แต่ค่านี้เป็นค่าพื้นฐาน ที่ใครๆ ก็รู้ ดังนั้น สมควรเปลี่ยน URL นี้เป็นค่าอื่นๆ ที่ไม่มีใครรู้ รวมไปถึงตัวเรา เอ้ย ผู้บุกรุก ที่ไม่สามารถคาดเดาถูก ติ๊กทำเครื่องหมายที่ Enable Rename Login Page Feature ไว้เลย จากนั้นก็มาเป็นค่าในช่องของ Login Page URL เป็นค่าอะไรก็ได้ ที่เราจะจำได้ และขอให้ยาวพอสมควร และขอร้อง อย่าตั้ง 123456 เป็นอันขาด หรือจะตั้ง whoyouknow ก็ยังได้ ถ้าใครเป็นแฟนพันธุ์แท้ของ แฮรี่พร็อตเตอร์น่ะนะ ตั้งเสร็จแล้วอย่าบอกใครล่ะ แม้กระทั่งตัวเอง เสร็จแล้วก็อย่าลืมคลิกที่ Save Settings

ไปที่ WP Security – Brute Force เลือก Tab ชื่อ Login Captcha , คะแนนสูงถึง 20 คะแนน ตรง tab นี้มีให้เลือกหลายตัวเลือก แต่ผมเลือกใช้เพียงตัวเลือกเดียว คือ Login Form Captcha Settings นี้ เมื่อเลือกแล้ว ที่หน้า Login จะปรากฏช่องกรอกข้อมูลใหม่ขึ้นมา เป็นการบวกเลขพื้นฐาน เพื่อพิสูจน์ความเป็นมนุษย์ ไม่ใช่ Robot จำแลงกายมาบุกรุกเว็บของเรา

หน้านี้ตั้งค่าตามนี้ได้เลยนะครับ และมายังหน้านี้ได้โดย เมนูด้านซ้าย WP Security – Firewall ซึ่ง อันดับแรก Enable Basic Firewall Protection ติ๊กได้เลย อยากรู้ป้องกันอะไรบ้าง คลิกที่ More Info นะ ส่วนถัดมา WordPress XMLRPC & Pingback Vulerability Protection ถ้าใครไม่ได้ใช้ Plugin Jetpack หรือ Plugin ใดๆ ที่เชื่อมต่อกับระบบของ WordPress ของเราก็ปิดเถอะครับ ซึ่ง xmlrpc มันเป็นเหมือนตัวเชื่อมต่อ เป็นรีโมตฟังก์ชั่น ที่ทำให้เราสามารถเรียกใช้งานที่เว็บไซต์ของเรา จากเครื่องอื่น โปรแกรมอื่นๆ ได้ เช่น โปรแกรม จำพวกที่ Post บทความเข้า WordPress ของเราได้ ถ้าไม่ได้ใช้งาน ก็ปิดไปได้เลย โดนจู่โจมกันมามากแล้ว เพราะฟังก์ชั่นตัวนี้ ส่วนถัดมา Block Access to Debug Log File ป้องกันความพยายาม ผู้ไม่หวังดี ตามไปค้นหา Log ของเราเพื่อหาข้อผิดพลาด ช่องโหว่ หรืออื่นๆ

อย่างที่ได้บอกไปแล้ว User name ที่ใช้ในการ Login ไม่ควรจะเป็น Admin ซึ่ง WordPress เวอร์ชั่นใหม่ๆ ไม่ได้กำหนดให้ Admin เป็นค่าเริ่มต้นให้กับเราแล้ว แต่ถ้าใครยังใช้ ก็สมควรเปลี่ยนทันที ผมไม่ต้องทำอะไรเพิ่มเติม และได้แถบสีเขียวแบบนี้ และมาที่หน้านี้โดย เมนูด้านซ้ายมือ WP Security – User Accounts

ส่วนนี้เป็นการแก้ไขตัว Display name ซึ่งไม่ควรจะซ้ำกับ User Login เด็ดขาด เพราะจะเป็นตัวเลือกแรกๆ ที่ผู้ไม่หวังดี เลือกมาทดลอง Login เว็บไซต์ของเราเอง Display name เราสามารถไปแก้ไขได้ที่ เมนูด้านซ้าย Users – Your Profile

เราไปแก้ไขได้ที่หน้า Users – Your Profiles ซึ่งเราจะแก้ไขที่ Nickname เป็นชื่ออะไรก็ได้ แต่ต้องไม่ซ้ำกับ Username นะ จากนัั้นก็แก้ Drop down ด้านล่าง ที่เขียนว่า Display name publicly as เป็นชื่อ ที่เราเพิ่งจะตั้งไปล่าสุดนี้ จากนั้นก็ Save ค่าไว้


มาถึงเรื่องของ Database กันบ้าง มาที่หน้านี้โดย เมนูทางด้านซ้าย WP Security – Database Security , ตามที่เคยบอกไปแล้ว เมื่อครั้งพูดถึงการติดตั้ง WordPress แบบอัตโนมัติ ซึ่งระบบติดตั้ง จะเลือกใช้ค่า Default ของ WordPress เอง โดยใช้ Prefix ของตาราง Database ทุกตัวเป็น wp_ แต่ผู้บุกรุก ก็รู้เรื่องนี้เช่นกัน ดังนั้น เราควรจะปรับแก้ชื่อตารางใน Database ของเราซะใหม่ เป็นอะไรก็ได้ ที่ไม่ใช่ wp_ อย่างเดิม ซึ่ง Plugin Security ตัวนี้ช่วยท่านได้ เลือกชื่อที่ต้องการแล้ว คลิกที่ Change DB Prefix ได้เลย ถ้าเป็นไปได้ ควรทำตามคำเตือนในกรอบสีแดงๆ นั่นก่อน ซึ่งก็คือการ Backup Database ของเราเอาไว้ เพื่อป้องกันความผิดพลาด

อีกส่วนหนึ่งที่สำคัญมากๆ เช่นกัน กับคะแนนที่มากถึง 20 คะแนน มาที่หน้านี้โดย เมนูด้านซ้าย WP Security – Filesystem Security , ในตารางนี้ จะแสดงค่าของ Current Permission กับ Recommended Permissions ที่ถูกตั้งไว้สำหรับไฟล์ และโฟลเดอร์ต่างๆ ใน hosting ของเรา ถ้าบรรทัดไหน มีค่าของ Current Permissions ไม่ตรงกับ Recommended Permissions ก็จะมีปุ่ม สีเทาๆ ขึ้นมาข้างหลัง เมื่อเราคลิกที่ปุ่ม ระบบก็จะจัดการแก้ไขค่า Permission ให้กับเราตามค่า Recommended อย่างที่เห็น แต่สำหรับ บรรทัดแรก root directory นั้น Hosting แต่ละแห่ง จะมีตั้งค่าไว้ไม่ตรงกัน บางแห่งก็ตั้งเป็น 0750 แบบนี้ บางแห่งก็เป็น 0755 แต่ถ้านอกเหนือจากสองค่านี้ ก็คลิกที่ปุ่มเทาๆ เถอะครับ ผิดปกติแล้ว
สุดท้าย จบบทความเรื่องความปลอดภัย หรือ Security ของ WordPress แบบเบื้องต้นเอาไว้เพียงเท่านี้ก่อน WordPress Security Plugin ยังมีอยู่อีกมาก วันหลังจะนำมาเปรียบเทียบ และหาคำแนะนำ ใครว่าอะไร กล่าวถึงไว้อย่างไรบ้าง มาให้อ่านกันอีกครั้ง สำหรับวันนี้ ขอจบเรื่องเครียดๆ ไว้เพียงเท่านี้ครับ