ฉันมีกล่องลินุกซ์ที่ติดตั้งการ์ดเครือข่าย 2 ตัวเพื่อตรวจสอบปริมาณการใช้ข้อมูลที่ไหลผ่านพอร์ต 80 การ์ดใบหนึ่งถูกใช้เพื่อออกไปยังอินเทอร์เน็ตการ์ดอีกใบหนึ่งเชื่อมต่อกับสวิตช์เครือข่าย จุดนี้จะสามารถตรวจสอบปริมาณข้อมูล HTTP และ HTTPS ทั้งหมดบนอุปกรณ์ที่เชื่อมต่อกับสวิตช์นั้นเพื่อการดีบัก
ฉันได้เขียนกฎต่อไปนี้สำหรับ iptables:
nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
ใน 192.168.2.1:1337 ฉันมี http proxy โปร่งใสโดยใช้ Charles ( http://www.charlesproxy.com/ ) สำหรับการบันทึก
ทุกอย่างดีสำหรับพอร์ต 80 แต่เมื่อฉันเพิ่มกฎที่คล้ายกันสำหรับพอร์ต 443 (SSL) ที่ชี้ไปที่พอร์ต 1337 ฉันได้รับข้อผิดพลาดเกี่ยวกับข้อความที่ไม่ถูกต้องผ่านทาง Charles
ฉันเคยใช้ SSL proxying บนคอมพิวเตอร์เครื่องเดียวกันมาก่อนกับ Charles ( http://www.charlesproxy.com/documentation/proxying/ssl-proxying/ ) แต่ไม่ประสบความสำเร็จในการทำสิ่งนี้อย่างโปร่งใสด้วยเหตุผลบางประการ แหล่งข้อมูลบางแห่งที่ฉัน googled บอกว่าเป็นไปไม่ได้ - ฉันยินดีที่จะยอมรับว่าเป็นคำตอบถ้ามีคนอธิบายได้ว่าทำไม
ตามบันทึกแล้วฉันมีสิทธิ์เข้าถึงการตั้งค่าที่อธิบายอย่างครบถ้วนรวมถึงไคลเอนต์ทั้งหมดที่เชื่อมต่อกับซับเน็ต - ดังนั้นฉันจึงยอมรับชาร์ลส์ที่เซ็นชื่อด้วยตัวเองได้ การแก้ปัญหาไม่จำเป็นต้องเป็นแบบเฉพาะของ Charles ตั้งแต่ในทางทฤษฎีแล้วพร็อกซีแบบโปร่งใสจะทำอะไร
ขอบคุณ!
แก้ไข: หลังจากเล่นกับมันเพียงเล็กน้อยฉันก็สามารถทำให้มันทำงานกับโฮสต์ที่เฉพาะเจาะจงได้ เมื่อฉันแก้ไข iptables ของฉันต่อไปนี้ (และเปิด 1338 ใน charles สำหรับ reverse proxy):
nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.2.1:1338
-A PREROUTING -i eth1 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 1338
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
ฉันสามารถรับการตอบกลับ แต่ไม่มีโฮสต์ปลายทาง ใน reverse proxy ถ้าฉันเพียงระบุว่าทุกอย่างตั้งแต่ปี 1338 ไปยังโฮสต์เฉพาะที่ฉันต้องการกดมันจะทำการจับมืออย่างถูกต้องและฉันสามารถเปิดใช้ SSL พร็อกซี่เพื่อตรวจสอบการสื่อสาร
การตั้งค่าน้อยกว่าอุดมคติเพราะฉันไม่ต้องการคิดทุกอย่างตั้งแต่ปี 1338 ไปที่โฮสต์นั้น - มีความคิดใดว่าเหตุใดโฮสต์ปลายทางจึงถูกถอดออก
ขอบคุณอีกครั้ง