У мене встановлено вікно Linux з двома мережевими картами для огляду трафіку, що проходить через порт 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-проксі, який використовує Чарльза ( http://www.charlesproxy.com/ ) для запису.
Для порту 80 все добре, але коли я додаю подібні правила для порту 443 (SSL), що вказує на порт 1337, я отримую помилку щодо недійсного повідомлення через Чарльза.
Раніше я використовував SSL-проксі на тому ж комп’ютері разом із Чарльзом ( http://www.charlesproxy.com/documentation/proxying/ssl-proxying/ ), але з певних причин не мав успіху робити це прозоро. Деякі ресурси, за якими я google, кажуть, що це неможливо - я готовий прийняти це як відповідь, якщо хтось може пояснити, чому.
Як зауваження, я маю повний доступ до описаного набору, включаючи всіх клієнтів, підключених до підмережі - тому я можу прийняти Чарльз, який підписав самопідпис. Рішення не повинно бути специфічним для Чарльза, оскільки теоретично будь-який прозорий проксі може робити.
Спасибі!
Редагувати: трохи погравши з ним, я зміг змусити його працювати для конкретного хоста. Коли я змінюю свої iptables на наступні (і відкриваю 1338 у графіках для зворотного проксі):
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
Я в змозі отримати відповідь, але без господаря призначення. У зворотному проксі, якщо я просто вказую, що все, починаючи з 1338 року, переходить до конкретного хоста, на який я хотів потрапити, він виконує тремтіння руки належним чином, і я можу включити SSL-проксі для перевірки зв'язку.
Налаштування є менш ніж ідеальним, тому що я не хочу припускати, що все, починаючи з 1338 року, переходить до цього хоста - будь-яка ідея, чому хост призначення знімається?
Знову дякую