เมื่อเปิด VPN แล้ว ไฟร์วอลล์คลาวด์เห็นที่อยู่ใด
อุโมงค์แบบเต็มเปลี่ยนที่อยู่ต้นทางที่ฐานข้อมูลของคุณเห็น ย้ายรายการที่อนุญาต เส้นทางส่วนตัว หรืออุโมงค์แยก ไม่ใช่ข้อมูลรับรอง
ฐานข้อมูลที่ทำงานก่อน VPN เชื่อมต่อและล้มเหลวหลังจากนั้นไม่ค่อยเป็นปัญหาข้อมูลรับรอง ไฟร์วอลล์คลาวด์จับคู่ที่อยู่ต้นทาง และอุโมงค์แบบเต็มจะแทนที่ที่อยู่ที่มันกำลังจับคู่อยู่ ส่วนต่างระหว่างสิ่งที่คุณคิดว่าแล็ปท็อปส่งออกไปกับสิ่งที่เซิร์ฟเวอร์ได้รับคือบั๊กทั้งหมด และวัดได้ในขั้นตอนเดียว
ที่อยู่ต้นทางกลายเป็นอะไร
ในอุโมงค์แบบเต็ม ทุกแพ็กเก็ตออกผ่านเกตเวย์ VPN เซิร์ฟเวอร์จึงเห็นที่อยู่ขาออกของเกตเวย์แทนการเชื่อมต่อที่บ้านของคุณ หากมีพร็อกซีส่งต่ออยู่ในเส้นทาง ที่อยู่ของมันคือสิ่งที่มาถึง ทั้งสองเป็นแหล่งที่ถูกต้อง และไม่มีอันใดเป็นที่อยู่ในกฎเดิมของคุณ
กฎไฟร์วอลล์ของ Azure SQL ระดับเซิร์ฟเวอร์และระดับฐานข้อมูลจับคู่ที่อยู่ไคลเอนต์ที่ไปถึงเซิร์ฟเวอร์ลอจิคัล ซึ่งหลังอุโมงค์แบบเต็มคือที่อยู่ขาออก กลุ่มความปลอดภัยของ AWS ที่อนุญาตที่อยู่เดียวก็ทำงานแบบเดียวกัน แพ็กเก็ตถูกทิ้งก่อนการรับรองความถูกต้อง ข้อผิดพลาดที่ได้รับจึงดูเหมือนเครือข่ายล้มเหลวมากกว่าปัญหาสิทธิ์ นั่นคือเหตุผลที่ผู้คนเริ่มรีเซ็ตรหัสผ่าน
รายการที่อนุญาตถูกตัดสินที่ไหน
อ่านกฎที่ตรงกับเส้นทางที่ล้มเหลว ไม่ใช่กฎที่คุณจำได้ว่าสร้างขึ้น สังเกตขอบเขต พอร์ต โปรโตคอล และว่ากฎนั้นถูกประเมินก่อนการตรวจสอบตัวตนใดๆ หรือไม่
จากนั้นตัดสินว่าชั้นใดเป็นเจ้าของการตัดสินใจนี้โดยชอบธรรม กฎที่อยู่ตอบว่าทราฟฟิกมาจากไหน ปลายทางส่วนตัวตอบว่าบริการเข้าถึงได้ผ่านเส้นทางส่วนตัวหรือไม่ ข้อยกเว้นอุโมงค์แยกตอบว่าปลายทางใดข้ามอุโมงค์ไป ทั้งสองแทนกันไม่ได้ และแต่ละอย่างล้มเหลวต่างกันเมื่ออุโมงค์เปลี่ยน
สามการซ่อม สามชั้น
แต่ละตัวเลือกด้านล่างซ่อมการไหลด้วยเหตุผลต่างกัน และการเลือกผิดจะให้การเชื่อมต่อที่ทำงานจนถึงการเปลี่ยนเกตเวย์ครั้งถัดไป
| Repair | Layer it changes | What it does not fix |
|---|---|---|
| Add the egress address to the rule | Source address matching | Nothing about routing, and it breaks when the egress moves |
| Use a private endpoint | Whether the service is reached privately | A client that still resolves the public name |
| Add a split-tunnel exception | Which flows bypass the tunnel | An expired credential or a wrong password |
การเพิ่มที่อยู่ขาออกเป็นการเปลี่ยนแปลงที่เล็กที่สุดและเปราะบางที่สุด เพราะเกตเวย์ใหม่หรือภูมิภาคอื่นทำให้มันใช้ไม่ได้อย่างเงียบๆ จดบันทึกที่อยู่ไว้ข้างคำจำกัดความของอุโมงค์เพื่อให้ทั้งสองเคลื่อนไปด้วยกัน ช่วงกว้างชั่วคราวคือการวินิจฉัย ไม่ใช่การซ่อม การปล่อยไว้คือวิธีที่บริการภายในสุดท้ายถูกเปิดเผย
ทำไมแพลตฟอร์มที่มีการจัดการจึงเข้าร่วมอุโมงค์ไม่ได้
แพลตฟอร์มแอปพลิเคชันอย่าง Heroku, AppHarbor หรือ CloudBees รันโค้ดของคุณในสภาพแวดล้อมที่ไม่มีอุปกรณ์ tun หรือ tap และไม่มีสิทธิ์สร้างขึ้น อุปกรณ์ขาเข้าของพวกมันคือ HTTP ไม่ใช่ซ็อกเก็ตที่รอรับแบบใดก็ได้ buildpack ที่นำไบนารี VPN มาด้วยก็ยังไม่มีที่วางอินเทอร์เฟซ รูปแบบที่ใช้งานได้คือที่อยู่ขาออกแบบคงที่ที่ฐานข้อมูลอนุญาตได้ ผลิตภัณฑ์เชื่อมต่อส่วนตัวที่แพลตฟอร์มเสนอ หรือพร็อกซีใน DMZ ที่เข้าถึงผ่าน HTTPS
พร็อกซีนั้นเป็นเส้นทางการเข้าถึงที่มีการรับรองความถูกต้องและการบันทึกของตัวเอง มันไม่ได้ทำให้แพลตฟอร์มเป็นสมาชิกของ VPN ของคุณ และการอธิบายเช่นนั้นสร้างกฎที่ไม่มีใครตรวจสอบได้
ตรวจสอบจากไคลเอนต์ที่ล้มเหลว
เชื่อมต่อใหม่และทำเส้นทางของไคลเอนต์ให้เหมือนเดิมทุกประการ ตรวจสอบที่อยู่ต้นทางที่บริการบันทึก เส้นทางที่ไคลเอนต์เลือกสำหรับชื่อฐานข้อมูล และผลลัพธ์ของคิวรีจริงตามลำดับนั้น การทดสอบจากเกตเวย์พิสูจน์ว่าเกตเวย์ทำงาน ซึ่งไม่เคยเป็นข้อสงสัย หากการเชื่อมต่อผ่านการรับรองแล้วแต่คิวรียังล้มเหลว ปัญหาที่เหลือคือสิทธิ์ของฐานข้อมูล
ทบทวนกฎเหล่านี้ทุกครั้งที่อุโมงค์เปลี่ยน เกตเวย์ที่ถูกเปลี่ยนหรือช่วงขาออกใหม่จะทำให้เส้นทางขาดโดยไม่มีการเปลี่ยนแปลงการกำหนดค่าแอปพลิเคชันเลย