Изменить HTTP-пакеты в Linux-шлюзе
Поздравил,
У меня установлен CentOS в качестве шлюза, и некоторые клиенты подключаются к Интернету через этот шлюз (NAT).
Теперь я хочу вставить строку в каждую веб-страницу, которую запрашивали клиенты. Как этого добиться? netfilter, winpcap или что-то еще?
Любые комментарии будут оценены:-)
2 ответа
В идеале нет. Делая это вслепую, вы сломаете много веб-страниц, особенно те, которые интенсивно используют AJAX. (Потому что ваши вставленные строки окажутся в местах, где они будут вызывать ошибки, такие как ответы JSON.)
Если вам нужно, термин для того, что вы пытаетесь сделать, это "прозрачное проксирование". Squid поддерживает это: http://wiki.squid-cache.org/SquidFaq/InterceptionProxy
Изменение содержимого ответа требует чего-то, что знает, как анализировать и корректно изменять это содержимое. Это означает, что вы не можете сделать это на уровне пакетов (уровень 3, где также реализован NAT), но вам нужно что-то на уровне приложений (уровень 7). Шлюзы прикладного уровня обычно называются прокси:-)
И поскольку этот вопрос на самом деле не в том форуме, я перестану отвечать на него:-) Пожалуйста, переместите его, например, Ошибка сервера.