Eu tenho alguns fluxos TCP que passam apenas pela minha caixa Linux. Em teoria, apenas os pacotes os encaminham. Agora aconteceu uma ideia nova que agora penso que seria muito melhor alterar também o seu conteúdo.
Minha idéia é que o fluxo TCP encaminhado seja tratado como se fosse um fluxo de entrada e depois processado por minhas próprias ferramentas.
É de alguma forma possível? Acho que de alguma forma o pacote deveria ser tratado como se tivesse sido enviado para a máquina e não para encaminhamento, numa fase inicial do tratamento dos pacotes recebidos.
@telcoM explicou uma solução muito útil: o alvo REDIRECT da seção PREROUTING iptables. Isso afeta os pacotes recebidos antes que seu destino seja decidido (eles serão encaminhados ou manipulados por um soquete local).
iptables -t nat -A PREROUTING -p tcp --dport <orig dest port> -j REDIRECT --to-ports <new local port>
Ele também menciona que os protocolos criptografados tendem a combater exatamente isso, pois podem levar a ataques MiTM. No entanto, na falta de intenção de escutar ou alterar o conteúdo, este provavelmente não é um problema sério.
Outra coisa importante é que esta solução destrói as informações da porta e endereço de destino original. Não há uma maneira fácil de fazer isso de maneira significativamente diferente.