Как добавить правило iptables для определенного события (HTTP/1.1 302 Найдено)
Маршрутизатор My Tomato имеет два интерфейса Eth0 - прямое соединение Tun1 - vpn
Иногда некоторые веб-сайты возвращают "HTTP/1.1 302 Found", и когда это происходит, я хочу добавить правило iptables для использования Tun1 вместо Eth0 для этого конкретного IP-адреса.
Я не могу понять, как отловить ответ "HTTP/1.1 302 Found" на маршрутизаторе и как использовать его в качестве триггера для правила IPTABLES. Должен ли я иметь tcpdump 24\7 или есть лучшие способы? Любой вклад будет по достоинству оценен. Благодарю.
1 ответ
Я сомневаюсь, что есть что-нибудь готовое для реализации такого поведения.
Для этого вам необходимо учесть следующие моменты:
- Это возможно только для HTTP-соединений, так как для этого требуется иметь возможность читать текстовые версии данных. В HTTPS данные зашифрованы.
- Нужно иметь механизм, который читает трафик и реализует разбор протокола HTTP и выясняет место назначения из
Location
HTTP заголовок. - Нужно разобрать URL, чтобы извлечь домен из
Location
заголовок, а затем выполните поиск IP-адреса для этого домена. - Нужно добавить правило IPTables NAT для IP-адреса, найденного в шаге 3, в таблицы брандмауэра ядра.
В заключение, для реализации этой функции потребуется много различных компонентов, и я не думаю, что никто не реализовал ее.