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

โมเดลความเป็นเจ้าของสามแบบ

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

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

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

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

อ่านสถานะปัจจุบันก่อนเปลี่ยนแปลง

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

nmcli connection show "Office VPN"
nmcli --show-secrets connection show "Office VPN"
sudo stat -c '%U %a %n' /etc/NetworkManager/system-connections/*.nmconnection

ไฟล์คีย์ในไดเรกทอรีนั้นมักเป็นของ root และมีโหมด 600 ซึ่งกันผู้ใช้ทั่วไปออกและไม่ได้กัน root ออก ซึ่งสำคัญเมื่อเครื่องเดียวกันถูกใช้ร่วมกันหรือเมื่อการสำรองข้อมูลทำงานในฐานะ root

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

แต่ละค่าแฟล็กทำอะไร

รหัสลับ VPN มีพร็อพเพอร์ตี flags และค่าเหล่านี้ไม่ชัดเจนจากตัวเลขเพียงอย่างเดียว

ValueMeaningPractical effect
0No special flagSecret is typically saved with the connection
1Agent-ownedA keyring or secret agent supplies it
2Not savedPrompted at each activation
4Not requiredConnection proceeds without asking

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

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

จับคู่โมเดลกับเวลาที่การเชื่อมต่อเริ่ม

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

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

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

หากรหัสลับเคยปรากฏให้เห็นแล้ว ให้เปลี่ยนมัน

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

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

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

ตรวจสอบด้วยการเชื่อมต่อใหม่

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

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

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