У меня есть простая проблема, которую, я уверен, кто-то здесь делал раньше ...
Я хочу переписать потоки TCP / IP уровня 4 (не отдельные пакеты или кадры нижнего уровня). Команда etterfilter
Ettercap позволяет выполнять простую оперативную замену потоков TCP / IP уровня 4 на основе фиксированных строк или регулярных выражений. Пример кода сценария ettercap:
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "gzip")) {
replace("gzip", " ");
msg("whited out gzip\n");
}
}
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "deflate")) {
replace("deflate", " ");
msg("whited out deflate\n");
}
}
http://ettercap.sourceforge.net/forum/viewtopic.php?t=2833
Я хотел бы переписать потоки на основе моей собственной программы фильтрации, а не просто заменять строки. У кого-нибудь есть идеи, как это сделать? Есть ли что-нибудь кроме Ettercap, которое может сделать замену в реальном времени, например, как плагин для программного обеспечения VPN или что-то в этом роде?
Я хотел бы иметь конфигурацию, аналогичную конфигурации тихого мостового перехвата ettercap между двумя интерфейсами Ethernet. Таким образом, я могу тихо фильтровать трафик, поступающий с любого направления без проблем с NAT. Обратите внимание, что мой фильтр - это приложение, которое действует как конвейерный фильтр, аналогично дизайну фильтров командной строки unix:
>[eth0] <----------> [my filter] <----------> [eth1]<
Мой фильтр будет функцией Python в пользовательском пространстве.
То, что я уже знаю, но не подходит:
Tun / Tap - работает на нижнем уровне пакетов, мне нужно работать с потоками более высокого уровня.
Ettercap - я не могу найти способ сделать замену, кроме ограниченных возможностей в приведенном выше примере.
Подключиться к некоторому программному обеспечению VPN? - Я просто не могу понять, что или как именно.
libnetfilter_queue - Работает с пакетами нижнего уровня, а не с потоками TCP / IP.
Опять же, перезапись должна происходить на транспортном уровне (уровень 4), как это происходит в этом примере, а не на основе пакетного подхода более низкого уровня. Точный код поможет безмерно!
Спасибо!