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

การอ่านบันทึกเดียวแยกจากกันชวนให้ได้ข้อสรุปที่ผิด อ่านสองรายการจากนาทีเดียวกัน แล้วลำดับจะปรากฏชัด

สามกลไกกับสามคำศัพท์

บน Linux บันทึก systemd ดักข้อความวงจรชีวิตของ unit จาก wg-quick@wg0 หรือปลั๊กอิน VPN ของ NetworkManager และบัฟเฟอร์วงแหวนของเคอร์เนลพาข้อความอินเทอร์เฟซและการกำหนดเส้นทาง บน Windows บันทึกเหตุการณ์แบ่งเรื่องราวให้ผู้ให้บริการระบบ WLAN และการเข้าถึงระยะไกล แต่ละรายมีตัวระบุของตัวเอง บน macOS บันทึกแบบรวมพาข้อความที่จำกัดขอบเขตในระบบย่อย ซึ่ง Console แบบกราฟิกแสดงเพียงบางส่วน

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

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

FacilityWhat it recordsWhat it cannot show
systemd journalUnit start and stop, helper output, exit statusWhether packets actually reached the peer
Kernel and netlinkInterface creation, address assignment, route changesWhy the client asked for that configuration
Windows event logProvider-specific connection and adapter eventsAnything the provider chose not to log

บรรทัดที่เชื่อมต่อได้พิสูจน์อะไรและไม่ได้พิสูจน์อะไร

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

สถานะการส่งต่อเป็นการสังเกตแยกต่างหาก และมาจากตารางเส้นทาง ไม่ใช่จากบันทึกใด ๆ

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

การเชื่อมต่อใหม่ในภายหลังเขียนทับส่วนที่น่าสนใจของภาพนี้ ดังนั้นให้เก็บหน้าต่างไว้ตั้งแต่ความล้มเหลวครั้งแรก ไม่ใช่หลังลองสามครั้ง

เชื่อมโยงหน้าต่างช่วงสั้น

บันทึกเวลาที่ลองพร้อมเขตเวลา แล้วดึงช่วงไม่กี่นาทีรอบ ๆ เวลานั้น ข้อผิดพลาดแรกในช่วงมักเกิดขึ้นก่อนบรรทัดตัดการเชื่อมต่อที่ตั๋วสนับสนุนอ้างถึง

journalctl -u wg-quick@wg0 --since "today 09:00" --until "today 09:20"
ip route show table all | grep wg0
log show --last 20m --predicate 'subsystem == "com.apple.network"'

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

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

บันทึกเหล่านี้หยุดอยู่ตรงไหน

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

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

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

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