Linux ควรเก็บรหัสผ่าน VPN ของคุณไว้ที่ไหน? ไม่ใช่ในโปรไฟล์
แฟล็กความลับของ NetworkManager ตัดสินว่าโปรไฟล์ เอเจนต์พวงกุญแจ หรือไม่มีใครถือรหัสผ่าน คำตอบขึ้นอยู่กับว่าเมื่อไรการเชื่อมต่อเริ่มต้น
รหัสผ่าน VPN ต้องอาศัยอยู่ที่ใดที่หนึ่ง ในโปรไฟล์การเชื่อมต่อ ในพวงกุญแจที่เดสก์ท็อปปลดล็อก หรือไม่มีที่ใดเลย NetworkManager เรียกตัวเลือกนั้นว่าแฟล็กความลับ และการเลือกผิดคือสาเหตุที่การเชื่อมต่อทำงานหลังเข้าสู่ระบบแต่ล้มเหลวในฐานะบริการ แฟล็กคือการตั้งค่าหนึ่งบรรทัด และมันกำหนดว่าคุณจะได้ผลลัพธ์ใดในสามอย่างนั้น
แฟล็กสามตัวครอบคลุมเกือบทุกกรณี และการตัดสินใจคือเรื่องของเวลาเริ่มต้นการเชื่อมต่อ
แฟล็กความลับสามตัว สามพฤติกรรม
แฟล็ก 0 หมายความว่าความลับถูกบันทึกพร้อมกับการเชื่อมต่อ ในที่เก็บใดก็ตามที่ถือโปรไฟล์ แฟล็ก 1 ทำให้เป็นสมบัติของเอเจนต์ ความลับมาจากเอเจนต์ความลับเช่นพวงกุญแจของเดสก์ท็อป และ NetworkManager ขอความลับนั้นเมื่อเปิดใช้งาน แฟล็ก 2 หมายถึงไม่ได้บันทึก ความลับจึงไม่ถูกเขียนเลยและต้องป้อนทุกครั้ง แฟล็ก 4 ทำเครื่องหมายความลับว่าไม่จำเป็น สำหรับการเชื่อมต่อที่ไม่ต้องใช้เลยจริง ๆ
| Flag | Where it lives | Works unattended |
|---|---|---|
| 0 saved | Connection profile | Yes, if the store is readable |
| 1 agent-owned | Secret agent or keyring | Only if that agent is available |
| 2 not-saved | Nowhere | No |
ตั้งแฟล็กเป็นรายความลับ ไม่ใช่รายการเชื่อมต่อ การเชื่อมต่อหนึ่งรายการสามารถมีรหัสผ่านที่เป็นสมบัติของเอเจนต์และวลีรหัสผ่านของกุญแจส่วนตัวที่บันทึกไว้พร้อมกันได้
ตัดสินใจจากเวลาเริ่มต้นการเชื่อมต่อ
ถ้าผู้ใช้ที่เข้าสู่ระบบเริ่มการเชื่อมต่อ สมบัติของเอเจนต์คือค่าเริ่มต้นที่สมเหตุสมผล พวงกุญแจถูกปลดล็อกด้วยการเข้าสู่ระบบและความลับไม่เคยอยู่ในไฟล์ ถ้าการเชื่อมต่อต้องขึ้นก่อนที่ใครจะเข้าสู่ระบบ สมบัติของเอเจนต์คือทางเลือกที่ผิด เพราะ ไม่มีพวงกุญแจของเซสชันให้ปลดล็อก.
นั่นคือการตัดสินใจทั้งหมด ส่วนที่เหลือเป็นเพียงรูปแบบหนึ่งของมัน
สำหรับบริการก่อนการเข้าสู่ระบบ รูปแบบที่รองรับคือที่เก็บระดับระบบหรือไฟล์กุญแจที่ได้รับการป้องกัน และสิทธิ์ของไฟล์กลายเป็นสิ่งที่ป้องกัน อย่าแก้ปัญหาด้วยการวางรหัสผ่านลงในสคริปต์เชลล์ที่ทำงานตอนบูต
สิ่งที่พวงกุญแจให้และไม่ให้
พวงกุญแจเก็บความลับไว้นอกโปรไฟล์การเชื่อมต่อและผูกกับเซสชันของผู้ใช้ มันไม่ได้ทำให้ความลับพร้อมใช้กับบริการที่ไม่มีเซสชัน และไม่ได้เข้ารหัสสิ่งใดบนเครือข่าย สิ่งเหล่านี้เป็นคุณสมบัติแยกกันที่ผู้คนมักหลอมรวมกัน สิ่งที่มันซื้อมาคือรัศมีความเสียหายที่เล็กลงเมื่อไฟล์โปรไฟล์รั่ว
กุญแจส่วนตัวที่โปรไฟล์อ้างถึงต้องการสิทธิ์ของตัวเอง โดยไม่ขึ้นกับว่าอยู่ที่ใด
การวินิจฉัยโดยไม่ระบายความลับ
ชื่อการเชื่อมต่อ UUID และแฟล็กมักเพียงพอที่จะอธิบายความล้มเหลว nmcli connection show แสดงรายการโปรไฟล์ และแฟล็กความลับบอกคุณว่ารหัสผ่านควรมาจากที่ใด
หลีกเลี่ยง --show-secrets ในตั๋วและแชต เมื่อวางแล้ว มันคือข้อมูลรับรองในบันทึกการสนทนา
การจัดเก็บไม่ใช่การเพิกถอน
การลบความลับออกจากพวงกุญแจหนึ่งไม่ได้ทำให้ข้อมูลรับรองที่ผู้ปฏิบัติการระยะไกลยอมรับไปแล้วเป็นโมฆะ การเพิกถอนบัญชีเป็นการกระทำฝั่งเซิร์ฟเวอร์ และการจัดเก็บในเครื่องเป็นเรื่องแยกที่มีเจ้าของแยก
ตัดสินใจทั้งสองอย่างก่อนเกิดเหตุ ไม่ใช่ระหว่างเกิดเหตุ การเชื่อมต่อผู้ใช้แบบโต้ตอบและบริการก่อนเข้าสู่ระบบต้องการคำตอบที่ต่างกัน และสคริปต์เชลล์ที่ใช้ร่วมกันไม่ใช่ทั้งสองอย่าง เอกสารของ NetworkManager เกี่ยวกับแฟล็กความลับ แสดงรายการค่าทั้งหมด