โครงสร้างพื้นฐานส่วนตัว / ไม่ต้องใช้บัตรประชาชนอ่านหลักคำสอนด้านความเป็นส่วนตัว
บันทึกภาคสนาม KoalaVPS

ชั่วโมงแรก: พื้นที่โจมตีที่เล็กลง

เซสชันแรกอย่างรอบคอบจะสร้างการเข้าถึง การอัปเดต และการกู้คืนโดยไม่ทำให้คุณถูกล็อกออก

ตรวจสอบและรักษาการเข้าถึง

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

แพตช์และลดการเปิดเผย

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

แยกผู้ใช้และความลับออกจากกัน

รันแอปพลิเคชันภายใต้บัญชีของตนเอง วางการกำหนดค่าส่วนตัวไว้นอกไดเรกทอรีเว็บสาธารณะและยกเว้นจากการควบคุมเวอร์ชัน ใช้สิทธิ์ฐานข้อมูลที่จำกัดและข้อมูลรับรองแยกสำหรับการใช้งานจริงและการทดลอง

เหลือเส้นทางการกู้คืนที่ใช้งานได้

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

ตรวจสอบก่อนปิดเซสชัน

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

รายการตรวจสอบในวันแรก

ตรวจสอบซ็อกเก็ตที่เปิดอยู่ เหตุการณ์การยืนยันตัวตนล่าสุด สถานะการอัปเดต อายุข้อมูลสำรอง และการใช้ดิสก์ ตรวจสอบว่าการกำหนดค่าส่วนตัวและข้อมูลเมตาของระบบควบคุมเวอร์ชันไม่สามารถดึงผ่าน HTTP ได้ ใช้ชุดเครื่องมือที่ติดตั้งน้อยที่สุดที่รองรับภาระงานจริง

ss -lntup
df -h
free -h
systemctl --failed

ทำการเปลี่ยนแปลงการเข้าถึงตามลำดับที่ย้อนกลับได้

ก่อนอื่นให้ยืนยันเส้นทางคอนโซลหรือการกู้คืน และตรวจสอบคีย์โฮสต์ SSH ผ่านช่องทางที่เชื่อถือได้ของผู้ให้บริการ ติดตั้งคีย์สาธารณะสำหรับผู้ดูแลระบบที่ระบุชื่อ จากนั้นเปิดการเชื่อมต่อที่สองและทดสอบการยกระดับสิทธิ์ ตรวจสอบไวยากรณ์การกำหนดค่า SSH ก่อนโหลดบริการใหม่ ใช้การเปลี่ยนแปลงไฟร์วอลล์หลังจากอนุญาตเส้นทาง SSH ที่ต้องการแล้วเท่านั้น ปิดใช้งานวิธีการยืนยันตัวตนแบบเก่าหลังจากการแทนที่ทำงานได้จากเซสชันใหม่ โดยรวมขั้นตอนการยืนยันตัวตนขั้นที่สองที่จำเป็นด้วย

  • ตรวจสอบการกำหนดค่าที่มีผลจริงและสแนปเป็ตที่รวมอยู่ การตั้งค่าในไฟล์หนึ่งอาจไม่ใช่นโยบายสุดท้าย
  • ตรวจสอบทั้งการยืนยันตัวตนด้วยรหัสผ่านและนโยบาย keyboard-interactive เมื่อทบทวนการออกแบบการเข้าสู่ระบบด้วยคีย์
  • พอร์ต SSH ที่ไม่ใช่ค่าเริ่มต้นสามารถลดเสียงรบกวนเบื้องหลังได้ แต่ไม่ได้แทนที่คีย์ที่ยืนยันแล้ว การจำกัดการเข้าถึง หรือการอัปเดต
  • ใช้ชื่อบริการและขั้นตอนการโหลดใหม่สำหรับดิสทริบิวชันของคุณ เก็บเซสชันเดิมไว้จนกว่าจะพิสูจน์นโยบายใหม่ได้
# Validate before applying a changed SSH configuration.
sudo /usr/sbin/sshd -t
# Read effective settings; adapt user, host and client address to the test.
sudo /usr/sbin/sshd -T -C user=admin,host=server.example,addr=198.51.100.10

พิสูจน์ไฟร์วอลล์จากภายนอกโฮสต์

ตรวจสอบไฟร์วอลล์เครือข่ายของผู้ให้บริการและไฟร์วอลล์ของเกสต์เป็นมาตรการควบคุมแยกจากกัน ทดสอบบริการที่ต้องการผ่าน IPv4 และ IPv6 จากเครื่องอื่นที่ได้รับอนุญาต การเชื่อมต่อภายในเครื่องพิสูจน์เพียงว่ามีโปรเซสกำลังรับฟังอยู่ อย่าปฏิเสธแพ็กเก็ต ICMP ทั้งหมดโดยไม่ตรวจสอบ เพราะการทำงานปกติของเครือข่ายก็ต้องการทราฟฟิกควบคุมที่เหมาะสมเช่นกัน ตรวจสอบพอร์ตที่คอนเทนเนอร์เผยแพร่เทียบกับกฎจริง เพราะการเปิดเผยแอปพลิเคชันอาจไม่ตรงกับนโยบายที่คุณคิดว่าไฟร์วอลล์ส่วนหน้าบังคับใช้

  • หาก SSH ล้มเหลว ให้ตรวจสอบข้อจำกัดที่อยู่ต้นทาง อินเทอร์เฟซที่รับฟัง และไฟร์วอลล์ของผู้ให้บริการ ก่อนเปลี่ยนคีย์ซ้ำๆ
  • หาก HTTPS ล้มเหลว ให้ตรวจสอบ DNS, ตัวรับฟังโปรเซส และไฟร์วอลล์ภายใน/พร็อกซีตามลำดับนั้น
  • ก่อนใช้ชุดข้อมูลการใช้งานจริงชุดแรก ให้ตรวจสอบสถานะการอัปเดต การรีบูตที่สะอาด การแจ้งเตือนดิสก์ และการสำรองข้อมูลที่กู้คืนได้อย่างอิสระ
  • ตั้งเขตเวลาที่บันทึกไว้อย่างชัดเจนและตรวจสอบการซิงโครไนซ์เวลา อย่าเพิ่มการตั้งค่า swap หรือการบันทึก log โดยพลการโดยไม่ตรวจสอบความต้องการหน่วยความจำและการเก็บรักษาข้อมูลของ workload
กำหนดค่าโครงสร้างพื้นฐานของคุณ

ควบคุมด้วยตัวคุณเอง
ติดตั้งตามเงื่อนไขของคุณ

ไม่มีเอกสารยืนยันตัวตน เข้าถึงผู้ดูแลระบบเต็มรูปแบบ การเรียกเก็บเงินแบบคริปโตโดยกำเนิด