สิ่งที่เพื่อนๆ ควรทำหลังจากสร้างเครื่อง Cloud Server (Instance) ขึ้นมา

สิ่งที่เพื่อนๆ ควรทำหลังจากสร้างเครื่อง Cloud Server (Instance) ขึ้นมา

การสร้างเครื่อง Cloud Server หรือที่เพื่อนๆ อาจจะเรียกว่า “Instance” นั้นไม่ใช่เรื่องยาก แต่หลังจากที่เราตั้งค่าเครื่องมาแล้ว ยังมีสิ่งสำคัญที่เพื่อนๆ ควรทำเพื่อให้เซิร์ฟเวอร์ของเพื่อนๆ ปลอดภัยและทำงานได้อย่างเต็มประสิทธิภาพ มาดูกันเลยว่าเพื่อนๆ ควรทำอะไรบ้าง!

1. เปลี่ยนรหัสผ่าน root

เริ่มต้นด้วยการเปลี่ยนรหัสผ่านของ root นะครับ อย่าใช้รหัสผ่านที่ระบบให้มาเป็นค่าเริ่มต้น เพื่อนๆ ควรตั้งรหัสผ่านที่ยากต่อการเดา อย่าลืมใช้ตัวอักษร, ตัวเลข, และสัญลักษณ์เพื่อเพิ่มความปลอดภัย

2. สร้างผู้ใช้ใหม่และยกเลิกการเข้าถึง root โดยตรง

การให้สิทธิ์การเข้าถึงโดยตรงกับ root อาจไม่ปลอดภัย เพื่อนๆ ควรสร้างผู้ใช้ใหม่ที่มีสิทธิ์ sudo เพื่อใช้ในการจัดการเซิร์ฟเวอร์ วิธีนี้ช่วยลดความเสี่ยงถ้าเกิดการโจมตีใน root account

3. ตั้งค่าการเชื่อมต่อ SSH ด้วย Key Pair

เพื่อนๆ ควรใช้ SSH Key Pair แทนการล็อกอินด้วยรหัสผ่าน เพราะการใช้ key pair จะทำให้การเชื่อมต่อปลอดภัยยิ่งขึ้น โดยเฉพาะอย่างยิ่งเมื่อเพื่อนๆ ต้องเข้าถึงเซิร์ฟเวอร์จากภายนอก

4. อัปเดตระบบปฏิบัติการ

หลังจากสร้างเครื่องแล้ว เพื่อนๆ ควรตรวจสอบและติดตั้งอัปเดตระบบปฏิบัติการทันที เพื่อแก้ไขช่องโหว่ด้านความปลอดภัยและปรับปรุงประสิทธิภาพการทำงาน

5. ตั้งค่า Firewall

Firewall เป็นสิ่งสำคัญในการป้องกันการเข้าถึงที่ไม่พึงประสงค์ เพื่อนๆ ควรตั้งค่ากฎ firewall เพื่อเปิดเฉพาะพอร์ตที่จำเป็น เช่น เปิดแค่พอร์ต 22 สำหรับ SSH หรือพอร์ต 80/443 สำหรับ HTTP/HTTPS

6. ติดตั้ง Fail2Ban หรือเครื่องมือป้องกัน Brute Force

Fail2Ban เป็นเครื่องมือที่ช่วยป้องกันการโจมตีแบบ brute force โดยจะบล็อก IP ที่พยายามเข้าสู่ระบบไม่สำเร็จหลายครั้ง เพื่อนๆ ควรติดตั้งเพื่อเพิ่มความปลอดภัย

7. ปิดบริการหรือพอร์ตที่ไม่ใช้

ไม่จำเป็นต้องเปิดทุกพอร์ตหรือบริการบนเครื่อง เพื่อนๆ ควรตรวจสอบว่ามีบริการไหนที่ไม่จำเป็นแล้วทำการปิดเพื่อป้องกันการเข้าถึงที่ไม่ต้องการ

8. ตั้งค่า Automatic Security Updates

เพื่อนๆ ควรเปิดการอัปเดตอัตโนมัติสำหรับแพตช์ด้านความปลอดภัย เพื่อไม่ให้เซิร์ฟเวอร์ของเพื่อนๆ ตกอยู่ในความเสี่ยงจากช่องโหว่ที่ถูกค้นพบใหม่ๆ

9. ตั้งค่าการสำรองข้อมูล (Backup)

การสำรองข้อมูลเป็นเรื่องสำคัญมาก เพื่อนๆ ควรตั้งค่าให้มีการสำรองข้อมูลอัตโนมัติ ไม่ว่าจะเป็นการใช้ snapshot ของเครื่องหรือใช้บริการ cloud backup เพื่อป้องกันการสูญหายของข้อมูล

10. ติดตั้ง Monitoring Tools

เพื่อนๆ ควรติดตั้งเครื่องมือสำหรับการตรวจสอบระบบ เช่น Netdata หรือ Prometheus เพื่อดูแลการทำงานของ CPU, RAM, Storage และทรัพยากรอื่นๆ จะได้รู้ว่ามีอะไรผิดปกติหรือไม่

11. ตั้งค่าการล็อกกิจกรรม (Logging)

การติดตั้งและตั้งค่าเครื่องมือ logging อย่างเช่น rsyslog หรือ journald ช่วยให้เพื่อนๆ สามารถติดตามกิจกรรมต่างๆ บนเซิร์ฟเวอร์ได้ดีขึ้น เมื่อเกิดปัญหาจะสามารถหาสาเหตุได้อย่างรวดเร็ว

12. กำหนดสิทธิ์ในการเข้าถึงไฟล์และโฟลเดอร์

เพื่อนๆ ควรกำหนดสิทธิ์ในการเข้าถึงไฟล์และโฟลเดอร์อย่างรัดกุม โดยใช้คำสั่งเช่น chmod และ chown เพื่อกำหนดว่าใครสามารถอ่าน เขียน หรือรันไฟล์ได้บ้าง การทำเช่นนี้จะช่วยป้องกันข้อมูลสำคัญไม่ให้ถูกเข้าถึงโดยไม่ได้รับอนุญาต

13. กำหนดเวลาสำหรับรีบูต (Reboot Scheduling)

หากเพื่อนๆ มีการอัปเดตที่ต้องการรีบูตเซิร์ฟเวอร์ เพื่อนๆ ควรกำหนดเวลาที่เหมาะสมในการรีบูต เช่น ตั้งให้รีบูตในช่วงเวลาที่มีผู้ใช้น้อยที่สุด เพื่อลดผลกระทบต่อการใช้งาน

14. ใช้ระบบจัดการ Configuration เช่น Ansible หรือ Terraform

เพื่อนๆ สามารถใช้เครื่องมือจัดการ configuration เช่น Ansible หรือ Terraform เพื่อทำให้การตั้งค่าเซิร์ฟเวอร์เป็นไปอย่างอัตโนมัติและซ้ำรอยได้ ลดโอกาสเกิดความผิดพลาด และทำให้การจัดการหลายเซิร์ฟเวอร์ง่ายขึ้น

15. ตรวจสอบการตั้งค่า Timezone และเวลา

เพื่อนๆ ควรตรวจสอบและตั้งค่า Timezone ของเซิร์ฟเวอร์ให้ตรงกับภูมิภาคที่เพื่อนๆ ใช้งานจริง การตั้งค่าเวลาให้ถูกต้องเป็นเรื่องสำคัญ โดยเฉพาะเมื่อเซิร์ฟเวอร์ใช้ในการจัดการข้อมูลที่ต้องอ้างอิงเวลา เช่น การล็อกกิจกรรม หรือการจัดการไฟล์ระบบ

Read more

การทำ Data Migration และ Seeder: คู่มือสำหรับ Developer

การทำ Data Migration และ Seeder: คู่มือสำหรับ Developer

ถ้าพูดถึงการพัฒนาแอปพลิเคชันที่เชื่อมต่อกับ Database หนึ่งในความยุ่งยากที่สุดคือการจัดการ Database structure ที่เปลี่ยนไปตามฟีเจอร์ใหม่ๆ ที่เพิ่มเข้ามา เช่น เพิ่มตาราง (Table) เปลี่ยนชนิดข้อมูล (Data type) หรือลบฟิลด์ (Field) ออกไป และแน่นอนว่

By maimem
เช็ค Internet จากเว็บ: ทำยังไงให้รู้ว่าออกเน็ตได้จริง?

เช็ค Internet จากเว็บ: ทำยังไงให้รู้ว่าออกเน็ตได้จริง?

เคยเจอไหมครับ เวลาใช้งานเว็บไซต์แล้วอยู่ดี ๆ ก็โหลดข้อมูลไม่ได้ หรือ API เงียบหายไม่มีการตอบกลับ? หลายครั้งเรามักสงสัยว่า "ตกลงปัญหาอยู่ที่ตัวเรา เซิร์ฟเวอร์ หรือ Internet กันแน่?" วันนี้ผมจะมาเล่าเรื่อง "การตรวจสอบสถานะการเชื่อมต่

By maimem
Rust Series #2 - รู้จัก Cargo: ผู้ช่วยส่วนตัวของโปรเจกต์ Rust!

Rust Series #2 - รู้จัก Cargo: ผู้ช่วยส่วนตัวของโปรเจกต์ Rust!

ถ้าคุณเริ่มต้นเขียน Rust แล้วรู้สึกว่า “เฮ้ย! Rust เจ๋งแหะ” ก็ขอแสดงความยินดีครับ คุณเพิ่งเจอเพื่อนแท้ในโลกโปรแกรมมิ่ง! แต่เดี๋ยวก่อน... ถ้าต้องเขียนโค้ดโปรเจกต์ใหญ่ ๆ บริหารไลบรารี ดูแลไฟล์ต่าง ๆ หรือทดสอบโค้ดทุกวั

By maimem
ซ่อน Credential ใน AWS CodeBuild ให้ปลอดภัยด้วย Parameter Store

ซ่อน Credential ใน AWS CodeBuild ให้ปลอดภัยด้วย Parameter Store

ทำไมต้องซ่อน Credential? ในโลกของ DevOps และ Cloud Computing การจัดการ Credential (ข้อมูลรับรอง เช่น API Keys, Passwords, หรือ Secrets ต่างๆ) เป็นเรื่องที่สำคัญอย่างยิ่ง เพราะ Credential เปรียบเสมือนกุญแจที่เปิดประตูไปสู่ทรัพยากรสำคัญในระบบ เช่น ฐานข้อมูล

By maimem