Muszę wprowadzić niewielką modyfikację ruchu przychodzącego ze znanego hosta TCP: port, zanim proces obsługujący połączenie pobierze strumień.
Na przykład niech 192.168.1.88 będzie hostem zdalnym, na którym działa serwer WWW.
Potrzebuję tego, gdy proces na moim hoście lokalnym odbiera dane z 192.168.1.88:80 (np. Przeglądarki), najpierw zmienia się dane, zastępując text-A
je text-B
następującymi:
- 127.0.0.1: ... łączy się z 192.168.1.88:80
127.0.0.1: ... wysyła na 192.168.1.88:80:
GET /
192.168.1.88:80 wysyła do 127.0.0.1: ...:
HTTP/1.0 200 OK Content-Type: text/plain Some text-A, some other text
Te dane są w pewien sposób przechwycone przez system i przekazane do programu, którego wynikiem jest:
HTTP/1.0 200 OK Content-Type: text/plain Some text-B, some other text
system przekazuje tak zmienione dane do obsługi procesu 127.0.0.1: ... tak, jakby pochodziły z 192.168.1.88:80.
Zakładając, że mam sposób dokonywania tych zmian na podstawie strumienia ( sed
na przykład), jaki jest najłatwiejszy sposób na wstępne przetworzenie przychodzącego strumienia tcp?
Myślę, że wymagałoby to zaangażowania iptables
, ale nie jestem w tym zbyt dobry.
Pamiętaj, że aplikacja powinna działać z oryginalnym hostem, więc skonfigurowanie serwera proxy nie jest rozwiązaniem.