README
TCPDuP v0.50 - A modular TCP duplicating proxy.
Copyright (C) 2006 Benjamin Rossi
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Summary
TCPDuP is a pluggable, dynamic, and rate limiting proxy. It is packaged with
a "pair" module that allows it to duplicate a service on a remote host:port,
and a "cmd" module that allows it to execute a local command and forward its
STDIN, STDOUT, STDERR from and to the network. The possibilities are
unlimited with a modular framework that abstracts connections and provides
a callback interface for various events.
Building
cd to the source tree. Type make.
Examples
- Use as a pair proxy with verbose (level 2) output. We want to accept connections on port 5000 and forward them to shell.example.com:22. ./tcpdup -v2 -m pair 5000 shell.example.com 22
- Use as a cmd proxy. Accept connections on port 5000 and run 'ls -la'. ./tcpdup -m cmd 5000 ls -la
- Use as a pair proxy to a local SSH service but limit bandwith to 100kbps. ./tcpdup -b100000 -m pair 2222 localhost 22
Logging
To enable logging, specify the -v switch and a level parameter. The levels of
logging are:
1 - Information (i.e. connects, disconnects)
2 - Verbose info (i.e. module callback information)
3 - Debug lvl 1 (some debugging output)
4 - Debug lvl 2 (moderate debugging output)
5 - Debug lvl 3 (a TON of debugging output)
To enable logging to syslog, use -l.
Daemon
To run as a daemon, specify the -d switch.
Ideas for module development
- regex filtering proxy
- MITM security auditing tools (ability to decrypt SSH would be really neat)
- encryption using OpenSSL
- a virtual multicasting hub
