วิธีรู้ว่าเซิร์ฟเวอร์ FTP บันทึกที่อยู่ใดจริง ๆ
ที่อยู่ในบันทึก FTP คือแหล่งที่เซิร์ฟเวอร์เห็นบนการเชื่อมต่อนั้น ติดตามเส้นทางการควบคุมและข้อมูลก่อนจะโยงเซสชันให้บุคคลใดบุคคลหนึ่ง
บรรทัดบันทึกหนึ่งบรรทัดแสดงที่อยู่เพียงหนึ่งค่า แล็ปท็อปมีที่อยู่ของอุโมงค์ การเชื่อมต่ออาจออกผ่านทางออกอื่น และการตรวจผ่านเบราว์เซอร์ที่คุณทำไม่ได้พิสูจน์อะไรเกี่ยวกับ FTP ทั้งสามค่านี้อาจต่างกัน และบรรทัดบันทึกก็บันทึกไว้เพียงค่าเดียวเท่านั้น ตัดสินใจก่อนว่าคุณกำลังถามถึงการเชื่อมต่อใดก่อนจะเปรียบเทียบอะไร
ขั้นตอนเหล่านี้ถือว่าเป็นการสอบสวนที่ได้รับอนุญาตและมีกรอบเวลาที่กำหนดไว้ ไม่ใช่การไล่ดูการถ่ายโอนของคนอื่น
1. กำหนดว่าคุณกำลังถามถึงการเชื่อมต่อใด
FTP ใช้การเชื่อมต่อสองแบบ การเชื่อมต่อควบคุมส่งคำสั่งและคำตอบ ส่วนการเชื่อมต่อข้อมูลส่งไฟล์เอง เหตุการณ์เข้าสู่ระบบเป็นของการเชื่อมต่อแรก เหตุการณ์ถ่ายโอนเป็นของแบบที่สอง ดังนั้นเซสชันเดียวในบันทึกอาจมีข้อสังเกตจากเส้นทางเครือข่ายสองเส้นที่ต่างกัน เขียนไว้ว่าฟิลด์ที่อยู่เป็นของเหตุการณ์ใดก่อนจะสรุปสิ่งใดจากฟิลด์นั้น
การแยกนี้มีผลในทางปฏิบัติ บรรทัดเข้าสู่ระบบและบรรทัดถ่ายโอนจากเซสชันเดียวกันอาจมีที่อยู่ต้นทางสองค่าที่ต่างกัน ดังนั้นการอ้างค่าใดค่าหนึ่งว่า ”ที่อยู่ของไคลเอนต์” จึงเป็นการเดาว่าคุณกำลังอ่านการเชื่อมต่อใด ตรวจชนิดของเหตุการณ์ก่อนจะจับคู่ที่อยู่กับสิ่งใด
2. ติดตามการเชื่อมต่อควบคุม
รันไคลเอนต์โดยเปิดเอาต์พุตดีบัก หรือดักแพ็กเก็ตบนไคลเอนต์ขณะเชื่อมต่อ แล้วบันทึกเพียร์ที่มันไปถึงจริง หากเปิด VPN อยู่และไคลเอนต์ถูกส่งผ่าน VPN นั้น เซิร์ฟเวอร์จะเห็นที่อยู่ขาออกของ VPN ไม่ใช่ที่อยู่เครือข่ายเข้าถึงของแล็ปท็อป
หากไคลเอนต์ข้ามอุโมงค์ไป เซิร์ฟเวอร์จะเห็นที่อยู่เข้าถึง และที่อยู่ของอินเทอร์เฟซ VPN เองจะไม่ปรากฏบนสายเลย นั่นคือเหตุผลที่ที่อยู่ของอุโมงค์มักเป็นค่าที่มีประโยชน์น้อยที่สุดในภาพนี้ เพราะมันมีอยู่เฉพาะภายในอุโมงค์ ใช้ ss หรือการดักแพ็กเก็ตเพื่อยืนยันแหล่งที่ไคลเอนต์นำเสนอ แทนการอ่านจากหน้าจอตั้งค่า
สองคำสั่งครอบคลุมเกือบทั้งหมด:
ss -tnp state established "( sport = :21 or dport = :21 )"
tcpdump -ni any tcp port 21
คำสั่งแรกแสดงปลายทางฝั่งเครื่องและฝั่งเพียร์ที่สแตกของคุณใช้ คำสั่งที่สองแสดงที่อยู่ที่เขียนบนสาย ซึ่งใกล้กับมุมมองของเซิร์ฟเวอร์กว่าแต่ยังหยุดที่อินเทอร์เฟซของคุณ ดังนั้นมีเพียงบันทึกของเซิร์ฟเวอร์หรือการดักแพ็กเก็ตของเซิร์ฟเวอร์เองเท่านั้นที่แสดงสิ่งที่เซิร์ฟเวอร์บันทึกไว้
3. ตรวจว่าการเชื่อมต่อข้อมูลตรงกันหรือไม่
ในโหมดพาสซีฟเซิร์ฟเวอร์บอกไคลเอนต์ว่าให้ไปเชื่อมต่อที่ใด และในโหมดแอ็กทีฟเซิร์ฟเวอร์เชื่อมกลับไปยังที่อยู่ที่ไคลเอนต์ให้มา ทั้งสองโหมดอาจส่งการเชื่อมต่อข้อมูลไปยังที่ที่ต่างจากการเชื่อมต่อควบคุมเมื่อมีตัวแปลงหรือพร็อกซีอยู่ในเส้นทาง ยืนยันโหมดจากบันทึกของไคลเอนต์ แล้วตรวจว่าการเชื่อมต่อข้อมูลใช้เส้นทางเดียวกันหรือไม่
การถ่ายโอนที่บันทึกจากที่อยู่ต่างจากการเข้าสู่ระบบเป็นข้อสังเกตจริง ไม่ใช่บันทึกที่เสีย และมักบอกอะไรบางอย่างเกี่ยวกับเส้นทาง
4. ขอบันทึกที่แคบจากผู้ดูแล
ให้ผู้ดูแลเซิร์ฟเวอร์ทราบเวลาของเซสชันพร้อมเขตเวลา บัญชี การดำเนินการ และปลายทาง ถามว่าการเชื่อมต่อใดสร้างฟิลด์ที่อยู่ และตัวกลางที่เชื่อถือได้เปลี่ยนความหมายของฟิลด์นั้นหรือไม่
อ่านสคีมาที่แท้จริงของเซิร์ฟเวอร์นั้น แทนที่จะสมมติว่าทุกผลิตภัณฑ์บันทึกไคลเอนต์ต้นทาง เพียร์ควบคุม และเพียร์ข้อมูลแยกกัน เพราะบางผลิตภัณฑ์สรุปทั้งเซสชันไว้ในบรรทัดเดียว รักษาโปรโตคอลให้ชัดเจนด้วย SFTP เป็นโปรโตคอลที่อิง SSH ไม่ใช่ FTP บนพอร์ตอื่น และ FTPS เพิ่ม TLS ให้ FTP ดังนั้นตัวตนของบริการในบันทึกจึงขึ้นอยู่กับว่าคุณติดตั้งแบบใด
5. ตรวจสอบก่อนจะโยงให้บุคคล
ที่อยู่ขาออกหนึ่งค่าอาจให้บริการลูกค้าหลายราย และบัญชีหนึ่งอาจถูกใช้จากแหล่งที่ได้รับอนุญาตหลายแหล่ง ดังนั้นที่อยู่กับชื่อผู้ใช้ไม่ได้ชี้ตัวหน่วยเดียวกัน การบันทึกเป็นนโยบายของเซิร์ฟเวอร์ VPN เปลี่ยนแหล่งที่การเชื่อมต่อนำเสนอ แต่ไม่ได้ลบชื่อบัญชี ชื่อไฟล์ หรือการดำเนินการที่บริการปลายทางประมวลผล โยงเฉพาะสิ่งที่บันทึกแสดง และทำส่วนที่เหลือว่าไม่ทราบ หากต้องอธิบายให้คนอื่นฟัง คำอธิบาย FTP ของ WinSCP เป็นเอกสารอ้างอิงสั้น ๆ สำหรับแบบจำลองสองการเชื่อมต่อ
สองกรณีทั่วไปแสดงให้เห็นว่าทำไมเรื่องนี้จึงสำคัญ สำนักงานหนึ่งอาจส่งผู้ใช้ทุกคนออกผ่านที่อยู่ขาออกเดียว คนหนึ่งร้อยคนจึงสร้างค่าเดียวในบันทึก ตรงกันข้ามก็เกิดบ่อยพอ ๆ กัน บัญชีเดียวเชื่อมต่อจากสายที่บ้านและจากสายที่สำนักงานในสัปดาห์เดียวกัน และทั้งสองรายการอธิบายคนคนเดียวกัน