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

เริ่มจากงาน ไม่ใช่จากบัญชี

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

แยกการพิสูจน์ตัวตนและการอนุญาตออกจากกันขณะจด การพิสูจน์ตัวตนตอบว่าใครกำลังเชื่อมต่อ การอนุญาตตอบว่าเซสชันเข้าถึงอะไรได้หลังจากนั้น RADIUS พาส่วนที่สองมาเป็นแอตทริบิวต์ เช่น Filter-Id, Framed-IP-Address, Session-Timeout และ Class และเกตเวย์จะแนบมันเมื่อการเข้าสู่ระบบสำเร็จ การออกแบบที่เปลี่ยนการเข้าสู่ระบบแต่ปล่อยการอนุญาตไว้ไม่ได้จำกัดอะไรเลย

การเข้าสู่ระบบของมนุษย์ที่ใช้ร่วมกัน: รหัสผ่านกลายเป็นขอบเขต

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

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

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

ใบรับรองเครื่อง: อัตลักษณ์ที่ผูกกับโฮสต์

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

ขอบเขตที่มันสร้างแคบกว่าที่คนคาด ใบรับรองพิสูจน์ตัวตนโฮสต์ ไม่ใช่งาน และใครก็ตามที่มีสิทธิ์ root หรือผู้ดูแลภายในเครื่องสามารถใช้คีย์นั้นบนโฮสต์นั้นได้ เก็บคีย์ไว้ที่ที่แพลตฟอร์มป้องกันไว้ คือส่งออกไม่ได้ในที่เก็บใบรับรองของ Windows หนุนด้วย TPM ในที่ที่โปรไฟล์อนุญาต หรือไฟล์ 0600 ที่ root เป็นเจ้าของบน Linux การถูกบุกรุกของโฮสต์คือการถูกบุกรุกของข้อมูลรับรอง

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

openssl x509 -in client.pem -noout -subject -issuer -dates
ipsec listcerts

การเพิกถอนต้องมีเส้นทางที่เกตเวย์ตรวจสอบ OpenVPN อ่าน CRL ผ่านออปชัน crl-verify และ strongSwan ขึ้นอยู่กับ CRL หรือ OCSP ตามวิธีที่สร้างโปรไฟล์การเชื่อมต่อ ถ้าไม่ได้ต่อทั้งสองทาง การนำโฮสต์ออกหมายถึงการรอให้ใบรับรองหมดอายุ

สามเงื่อนไขที่ใช้ตัดสินระหว่างสองแบบ

เปรียบเทียบกับแพลตฟอร์มที่คุณมี ไม่ใช่กับการออกแบบอ้างอิง

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

ConstraintMachine certificateDedicated user account with stored secret
Unattended loginPrivate key proof, no promptOnly if the account is exempted from MFA
Resource expects a user identityWorks only when the resource accepts computer accountsMatches the access a person would have
RotationRe-enrollment, often automatedSecret change plus redeploy of every copy
Revocation speedTied to CRL or OCSP refreshDisable the account, immediate

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

วางขีดจำกัดไว้ในนโยบาย หลังการพิสูจน์ตัวตน

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

ให้งานมีกลุ่มหรือเงื่อนไขนโยบายของตนเอง โดยอิงจากสิ่งที่อัตลักษณ์เครื่องพามา เช่นเทมเพลตใบรับรอง ตัวระบุสถานีที่เรียก หรือที่อยู่จากพูลเฉพาะ แล้วผูกเซสชันด้วยแอตทริบิวต์ คือ Filter-Id สำหรับบทบาทที่เกตเวย์แมปไว้ Session-Timeout ที่สั้นเพื่อให้งานที่ค้างอยู่พิสูจน์ตัวตนใหม่แทนที่จะถือเซสชันไว้หลายวัน และ Framed-IP-Address จากพูลที่คุณทำไฟร์วอลล์ฝั่งตรงข้าม การอนุญาตของแอปพลิเคชันยังแยกต่างหาก อุโมงค์ไปยังเซิร์ฟเวอร์ฐานข้อมูลไม่ใช่สิทธิ์อ่านตารางภายใน

ตรวจสอบการปฏิเสธ แล้ววางแผนการนำออก

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

จากนั้นยืนยันเซสชันเดียวกันในสองที่ บันทึกของเกตเวย์แสดงอัตลักษณ์ที่พิสูจน์ตัวตนแล้ว บันทึกของเซิร์ฟเวอร์นโยบายแสดงว่านโยบายใดตรงและส่งแอตทริบิวต์ใดกลับมา บน OpenVPN เซิร์ฟเวอร์บันทึก common name ของใบรับรอง และ ipsec statusall บน strongSwan พิมพ์อุโมงค์ที่สร้างขึ้นพร้อมอัตลักษณ์ที่ใช้อยู่ ถ้าบันทึกทั้งสองไม่ตรงกันเรื่องอัตลักษณ์ นโยบายกำลังตรงกับสิ่งที่คุณไม่ได้สมมติไว้

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

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

บทความที่เกี่ยวข้อง