Перехоплення проксі через iptables: порти 80 і 443 як одна множина
Зіставляйте порти 80 і 443 як одну множину, а вибір адреси клієнта тримайте окремо від переписаної кінцевої точки проксі.
Щоб вибрати TCP-трафік, у якого порт призначення 80 або 443, використайте множину:
-p tcp -m multiport --dports 80,443Натомість --dport 80:443 вибирає весь діапазон від 80 до 443 включно. Так захоплюється багато зайвих портів. Кома й двокрапка виражають різні політики.
Це фрагменти зіставлення, а не повні команди брандмауера. Додайте їх до ланцюга й дії, яких вимагає схема перехоплення.
| Селектор | Що він визначає до переписування |
|---|---|
-s 192.0.2.20 | Адресу джерела клієнта |
-d 198.51.100.30 | Адресу сервера призначення |
--dports 80,443 | Порти служб призначення |
Адреса, що передається в --to-destination у DNAT, — це нове призначення, наприклад слухач проксі. Вона не замінює сенсу попередніх зіставлень джерела й призначення.
Тримайте селектор достатньо вузьким, щоб він описував потрібних клієнтів і трафік. Особливо враховуйте з’єднання, які створює сам проксі, щоб його подальші запити не потрапляли знову на той самий шлях перехоплення. Вибір порту 443 також не перетворює байти цього з’єднання на явний запит до HTTP-проксі; приймальній програмі все ще потрібен належний режим перехоплення. Для прозорої передачі TCP до проксі перекладач має відновити початкове призначення й узгодити протокол проксі.