สำหรับลูกค้า Cloud server ที่เลือกใช้งาน CentOS 7 แบบ minimal configuration เราขอแนะนำขั้นตอนที่ควรดำเนินการเพื่อความปลอดภัยในการใช้งาน หลังการ build virtual machine (cloud server) ดังนี้
User management
user : root เป็น user หลักที่จะได้หลังจากที่มีติดตั้ง CentOS เพื่อนำใช้ในการดำเนินการแก้ไขติดตั้งส่วนต่างๆ และเป็น user มีสิทธิ์ในการจัดการสูงสุดของระบบ ดังนั้นเพื่อความปลอดภัยในการใช้งาน เราจึงควรสร้าง user อื่นๆ เพื่อทำหน้าที่ในส่วนนี้แทน และใช้งาน user: root ในกรณีที่จำเป็นเท่านั้น
เริ่มต้นจาก การเข้าสู่ระบบด้วย user: root และสร้าง user ใหม่ รวมทั้งกำหนด password สำหรับ user ที่สร้างขึ้นใหม่ โดยควรกำหนด password ให้ค่อนข้างยากต่อการคาดเดา เช่น มีจำนวน 8 ตัวขึ้นไป, ประกอบด้วยตัวอักษรพิมพ์ใหญ่ พิมพ์เล็ก ตัวเลข และ อักขระพิเศษ
# adduser somchai # password somchai
หลังจากนั้น เราจะกำหนดสิทธิของ user ที่สร้างขึ้นใหม่ด้วย sudo เพื่อให้สามารถดำเนินการในส่วนต่างๆ แทน user :root ได้
#visudo
เพิ่มสิทธ์ ของ user: somchai ต่อจากบรรทัดของ “root ALL=(ALL) ALL”
somchai ALL=(ALL:ALL) ALL
บันทึกและออกจากหน้าคำสั่ง
ทดสอบ login ด้วย user: somchai ผ่านหน้า console และ run คำสั่ง เพื่อทดสอบสิทธ์การใช้งาน เช่น
$ sudo iptables –L
Configure SSH
หลังจากที่เราได้สร้าง user ใหม่แล้ว ต่อไปเราจะเริ่มแก้ไขส่วนต่างๆ ของระบบ จาก user ที่สร้างขึ้น โดยเริมจากกำหนดสิทธิ์ ในการ remote เข้ามายัง server รวมทั้งปิดสิทธิ์การ remote ของ user: root
$ sudo vi /etc/ssh/sshd_config
แก้ไขจาก
#Port 22 > Port 9009 #PermitRootLogin yes > PermitRootLogin no
บันทึกและออกจากหน้าคำสั่ง
สามารถตรวจสอบความถูกต้อง ของไฟล์ที่แก้ไขได้ตามคำสั่งด้านล่าง
$ sudo sshd -t
ทำการ restart SSH service (เพื่อความแน่ใจ ท่านอาจทำกระบวนการนี้ผ่าน console เพื่อไม่ให้ติดปัญหา ssh ถูก block จาก firewall)*
$ sudo systemctl reload sshd.service
Basic Firewall
สำหรับ CentOS นั้น จะมี firewall มาให้ด้วยแล้ว คือ firewalld และส่วนที่ใช้ในการกำหนดกฎและค่าต่างๆ คือ firewall-cmd ในบทความนี้เราจะกล่าวถึงการปรับค่าของ firewall จากค่าที่ได้มาจากการติดตั้ง server เท่านั้น โดยเมื่อเราสั่ง start service แล้ว เราจะสามารถกำหนดกฏ หรือ port ต่างๆ เพื่อการใช้งานได้
สั่งให้เริ่มต้นการทำงาน
$ sudo systemctl start firewalld
ส่วนแรกคือ การเปิดการใช้งานให้สามารถ remote มายัง server คือ SSH service
สำหรับ SSH service นั้น หากยังไม่มีการแก้ไข port ของ SSH server สามารถ enable service ได้ด้วยคำสั่ง
# sudo firewall-cmd --permanent --add-service=ssh
แต่หากมีการเปลี่ยนแปลง SSH port (ซึ่งก่อนหน้านี้เราได้มีการเปลี่ยนแปลงค่าดังกล่าวแล้ว) สามารถดำเนินการกำหนด port ใหม่ได้ด้วยคำสั่ง
$ sudo firewall-cmd --permanent --remove-service=ssh $ sudo firewall-cmd --permanent --add-port=9009/tcp
หากเราต้องการ ไปใช้งานส่วนอื่น เช่น Mail server หรือ Web server สามารถเพิ่มการใช้งานได้
$ sudo firewall-cmd --permanent --add-service=smtp $ sudo firewall-cmd --permanent --add-service=http
ตัวอย่าง การตรวจสอบ service ต่างๆ ที่สามารถเรียกใช้งานได้
$ sudo firewall-cmd --get-services
เมื่อกำหนดค่า firewall เรียบร้อย สามารถตรวจสอบรายละเอียดส่วนที่มีการแก้ไขได้จาก
$ sudo firewall-cmd --permanent --list-all
และสั่ง reload ค่าดังกล่าวเพื่อใช้งาน พร้อมทั้งกำหนดให้ service มีเริ่มทำงานตั้งแต่มีการ start เครื่อง
$ sudo firewall-cmd --reload $ sudo systemctl enable firewalld
Time zones
ค่า Time zones โดยปกติ จะมีการกำหนดตั้งแต่ช่วงการติดตั้งแล้ว แต่เราควรตรวจสอบเวลาและ Time zones ให้ถูกต้องอีกครั้งก่อนการเริ่มต้นใช้งาน
$ sudo timedatectl list-timezones $ sudo timedatectl set-timezone Asia/Bangkok $ sudo timedatectl
Network Time Protocol
เมื่อกำหนดค่า Time zones ถูกต้องแล้ว ต่อไปเราจะทำการตั้งค่า การ sync ค่าเวลาจาก server อื่น เพื่อให้มีเวลาการทำงานที่ถูกต้องและตรงกัน ซึ่งสำหรับ Service ที่นำมาใช้งานคือ ntp ซึ่ง สามารถติดตั้งได้จาก default repositories ของ CentOS
$ sudo yum install ntp $ sudo systemctl start ntpd $ sudo systemctl enable ntpd
Keep OS up-to-date (patching)
เราควรมีการ update package ต่างๆ ให้เป็น version ใหม่อยู่อย่างสม่ำเสมอ เพื่อป้องกันช่องโหว่งที่อาจจะพบได้ในบาง version จึงควรรันคำสั่งนี้เป็นระยะๆ (สัปดาห์ละครั้งเป็นต้น)
$ sudo yum update
ส่วนอื่นๆ
การเพิ่ม swap ได้จาก http://www.hostpacific.com/adding-swap-space-on-a-cloud-server/
บริการ Virtual machine ต่างๆ ของ HostPacific เช่น CloudNode (เริ่มต้นเพียงชม.ละ 0.75 บาท), CloudNode-M (เริ่มต้นเพียงเดือนละ 450 บาท) หรือ Enterprise Cloud Server (เริ่มต้นเดือนละ 900 บาท) สามารถใช้งาน CentOS 7 ได้ทุกแพลน