nmcli ถามรหัสผ่าน VPN ซ้ำแล้วซ้ำอีก: เก็บความลับไว้ในเครื่อง
เซสชันเดสก์ท็อปตอบพรอมป์ด้วยเอเจนต์ความลับ ผ่าน SSH ไม่มีใครทำเช่นนั้น จึงเก็บข้อมูลรับรองไว้ในไฟล์คีย์แล้วโหลดโปรไฟล์ใหม่
โปรไฟล์เดียวกัน สองเซสชัน เชื่อมต่อจากเดสก์ท็อปได้ แต่ผ่าน SSH จะค้างอยู่ที่พรอมป์ซึ่งไม่มีอะไรตอบได้ ไม่มีอะไรเสียและไม่มีการตั้งค่าใดหายไป NetworkManager กำลังขอข้อมูลรับรองจากเอเจนต์ความลับ และเอเจนต์ความลับคือส่วนประกอบของเดสก์ท็อปที่ไม่มีอยู่ในเซสชันที่คุณใช้
เรียกใช้ลำดับด้านล่าง แล้วอุโมงค์จะขึ้นโดยไม่ต้องใช้ส่วนติดต่อกราฟิก โดยมีข้อแม้ว่าการเก็บความลับจะเปลี่ยนว่าใครใช้โปรไฟล์นั้นได้
ยืนยันการวินิจฉัยก่อนแก้ไขสิ่งใด
ความแตกต่างระหว่างการเปิดใช้งานแบบโต้ตอบและไม่โต้ตอบคือการวินิจฉัยทั้งหมด ถ้า nmcli --ask connection up สำเร็จในขณะที่การเปิดใช้งานปกติค้างอยู่ แสดงว่าโปรไฟล์ถูกต้องและ แหล่งที่มาของความลับหายไป การเปรียบเทียบเพียงครั้งเดียวนั้นช่วยให้คุณไม่ต้องเขียนการตั้งค่าที่ใช้งานได้อยู่แล้วใหม่
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show "Office IPsec" | grep -i flags
อ่านแฟล็กแทนการเดา ค่าที่หมายถึง "ถามเอเจนต์" คือสิ่งที่คุณกำลังมองหา และชื่อคีย์ที่แน่นอนนั้นแตกต่างกันระหว่างปลั๊กอิน VPN เพราะมันอยู่ในพจนานุกรมข้อมูลของปลั๊กอินเอง โปรไฟล์ FortiSSL และโปรไฟล์ IPsec ไม่จำเป็นต้องใช้ชื่อเดียวกัน ดังนั้นให้ทำงานจากเอาต์พุตของโปรไฟล์ของคุณเอง
ตรวจสอบด้วยว่าแพ็กเกจปลั๊กอินสำหรับโปรโตคอลนั้นติดตั้งอยู่ การไม่มีปลั๊กอินจะปรากฏเป็นประเภทการเชื่อมต่อที่ไม่รู้จักหรือข้อผิดพลาดในการเปิดใช้งานที่ไม่พูดถึงรหัสผ่านเลย และการไล่ล่าความลับในสภาพนั้นจะเสียเวลาหนึ่งชั่วโมงเดิมสองครั้ง การสอบถามแพ็กเกจครั้งเดียวถูกกว่าการแก้ไฟล์คีย์ทั้งบ่าย
ย้ายความลับเข้าไฟล์คีย์
ไฟล์การเชื่อมต่ออยู่ภายใต้ /etc/NetworkManager/system-connections/ ความลับไม่ได้ถูกเก็บไว้ที่นั่นตามค่าเริ่มต้น และนั่นคือจุดประสงค์ของแฟล็กที่คุณเพิ่งอ่าน การเปลี่ยนแฟล็กเป็นศูนย์บอก NetworkManager ว่าค่านั้นถูกเก็บไว้กับโปรไฟล์แทนที่จะถูกขอในเวลาเปิดใช้งาน
[vpn]
password-flags=0
[vpn-secrets]
password=YOUR-VPN-PASSWORD
สำหรับโปรไฟล์ที่มีความลับสองรายการ รูปแบบจะซ้ำ คือหนึ่งแฟล็กต่อหนึ่งความลับในส่วน [vpn] และค่าใน [vpn-secrets] โดยทั่วไปโปรไฟล์ IPsec มีคีย์ที่แชร์ล่วงหน้าควบคู่กับข้อมูลรับรองของผู้ใช้ และปลั๊กอินตั้งชื่อให้แตกต่างจากช่องรหัสผ่านทั่วไป ดังนั้นให้คัดลอกชื่อคีย์จากเอาต์พุตของ vpn.data ไม่ใช่จากโพสต์บล็อกที่ใช้ปลั๊กอินอื่น ชื่อคีย์ผิดเพียงชื่อเดียวจะสร้างโปรไฟล์ที่โหลดได้แล้วล้มเหลวในการพิสูจน์ตัวตน ซึ่งอ่านได้เหมือนรหัสผ่านผิดทุกประการ ก่อนเชื่อมต่อใหม่ ให้เปรียบเทียบไฟล์ของคุณกับโปรไฟล์ที่ใช้งานได้ของปลั๊กอินเดียวกัน
ใส่เครื่องหมายคำพูดล้อมค่าที่มีช่องว่าง เครื่องหมายคำพูด หรือเครื่องหมายดอลลาร์ ค่าที่ไม่มีเครื่องหมายคำพูดและมี $ อยู่ข้างในจะถูกอ่านตามตัวอักษรหรือถูกขยายขึ้นอยู่กับตำแหน่งที่แยกวิเคราะห์ และความล้มเหลวในการพิสูจน์ตัวตนที่ตามมาจะดูเหมือนรหัสผ่านผิด
จากนั้นแก้ไขเจ้าของและโหมดของไฟล์ ไฟล์คีย์เหล่านี้ถูกอ่านโดยบริการที่มีสิทธิพิเศษ และไฟล์ที่ผู้ใช้อื่นอ่านได้จะถือว่าไม่น่าเชื่อถือ ซึ่งเป็นสาเหตุปกติที่โปรไฟล์ที่แก้ไขแล้วดูเหมือนถูกเพิกเฉย เจ้าของ root โหมด 600 ไม่มีข้อยกเว้น
โหลดใหม่ แล้วเปิดใช้งาน
ไฟล์ถูกอ่านเมื่อโหลดการเชื่อมต่อ ดังนั้นการแก้ไขเพียงอย่างเดียวไม่พอ ให้โหลดโปรไฟล์ใหม่แล้วยกการเชื่อมต่อขึ้นอย่างชัดเจน
sudo nmcli connection reload
sudo nmcli connection up "Office IPsec"
ถ้าการโหลดใหม่ไม่รับการเปลี่ยนแปลง การรีสตาร์ตบริการทั้งหมดจะรับ และมีรายงานเกี่ยวกับเรื่องนี้โดยตรง ให้เลือกการโหลดใหม่เมื่อลิงก์อื่นมีความสำคัญ เพราะการรีสตาร์ตบริการจะตัดการเชื่อมต่อที่จัดการอยู่ทุกรายการ และบนโฮสต์ระยะไกลอาจจบเซสชันของคุณก่อนที่อุโมงค์ที่ต้องการจะขึ้น
ใช้ UUID เมื่อชื่อกำกวม เครื่องที่มีโปรไฟล์ลูกค้าหลายรายการจะสะสมรายการที่เกือบซ้ำกัน และการเปิดใช้งานผิดรายการจะสร้างความล้มเหลวที่ดูเหมือนปัญหาข้อมูลรับรอง
เมื่อความลับที่เก็บไว้ไม่ใช่ปัญหา
โปรไฟล์ FortiSSL อาจล้มเหลวได้แม้มีข้อมูลรับรองที่เก็บไว้ถูกต้อง เพราะไคลเอนต์ไม่เคยเชื่อถือใบรับรองของเกตเวย์ การตั้งค่านั้นไม่ได้อยู่ในกล่องโต้ตอบหลัก แต่อยู่หลังตัวเลือกขั้นสูงของ VPN ซึ่งเป็นที่ป้อนค่าแฮชของใบรับรองที่เชื่อถือได้ ถ้าบันทึกกล่าวถึงใบรับรองแทนรหัสผ่าน คุณอยู่ในสาขานี้ และการแก้ไข [vpn-secrets] ไม่ว่าจะมากเพียงใดก็ไม่ช่วย
มีการตรวจสอบอีกสองอย่างที่เกี่ยวข้อง นี่คือการยืนยันว่าโปรไฟล์ไม่ได้ถูกนำเข้าจากไฟล์ที่ยังชี้ไปยังเส้นทางที่ปลั๊กอินอ่านไม่ได้ และยืนยันว่า โปรไฟล์เป็นตัวที่ใช้งานอยู่ ไม่ใช่สำเนาเก่า ทั้งสองอย่างสร้างความล้มเหลวในการเปิดใช้งานที่อ่านได้เหมือนข้อผิดพลาดในการพิสูจน์ตัวตน
ตัดสินใจว่าการเก็บไว้ยอมรับได้หรือไม่
PSK และรหัสผ่านที่เก็บไว้สามารถอ่านได้โดยทุกสิ่งที่ทำงานเป็น root บนเครื่องนั้น บนเครื่องที่คุณควบคุม นี่คือการแลกเปลี่ยนที่สมเหตุสมผลสำหรับบริการที่ไม่มีส่วนติดต่อ บนโฮสต์ที่ใช้ร่วมกัน สิ่งนี้ควรค่าแก่การพูดคุย เพราะโปรไฟล์มีข้อมูลรับรองที่ก่อนหน้านี้ได้รับการปกป้องโดยพวงกุญแจของเดสก์ท็อป ถามว่าใครอื่นเข้าถึง root บนโฮสต์นั้นได้ก่อนตัดสินใจ ไม่ใช่หลังจากนำการเปลี่ยนแปลงไปใช้แล้ว
ถ้านโยบายห้ามเก็บความลับ VPN อย่าทำให้โปรไฟล์อ่อนแอลงเพื่อให้งาน cron ทำงาน ให้เรียกใช้การเชื่อมต่อจากเซสชันที่มีเอเจนต์ หรือใช้กลไกอื่นสำหรับการทำงานอัตโนมัติ
สุดท้าย บันทึกว่าโปรไฟล์ใดเก็บความลับไว้ เพื่อไม่ให้ใครคัดลอกไปยังแล็ปท็อปโดยไม่ทันสังเกต ความคิดเห็นเหนือส่วนความลับพร้อมวันที่และเหตุผลก็เพียงพอ และจะช่วยให้ใครบางคนหลีกเลี่ยงการตรวจทานที่น่าอึดอัดในภายหลัง