Ситуация:
- Пакет tcp приходит на eth0 с пунктом назначения 8.8.8.8.
- Этот пакет соответствует некоторым критериям, которые заставляют меня хотеть перехватить его (скажем, меня интересуют все пакеты из источника 10.0.0.5 или все пакеты на порту 80).
- Пакет выделен с помощью правила iptables, так что я могу сделать с ним что-нибудь интересное.
Вместо того, чтобы игнорировать пакет или направить его в правильное место назначения, что я могу сделать, чтобы отправить его в локальный стек IP, чтобы любая программа, прослушивающая правильный порт, получила его?
Чтобы уточнить: я не хочу изменять IP-адрес назначения пакета и не хочу подделывать IP-адрес назначения для всей сети - я только хочу украсть пакеты, которые могут соответствовать правилу iptables.
Я попытался iptables -j REDIRECT, но, похоже, не может сделать это
Я также подумал о создании временного интерфейса, который будет принимать пакеты со всех ips, и использовать iptables для отправки на него пакетов интереса, но в соответствии с тем, что я прочитал, это заставит linux запечатывать каждый пакет, который он видит, потому что думает, что у него есть Действительный IP-адрес назначения для всех из них, даже если маршрутизация отключена.
Решение не должно быть эксклюзивным для tcp, если оно работает с tcp.
Есть какой-либо способ сделать это?