Building redir (redir.c) from patched sources
Posted by davidnewcomb on 22 Jun 2010 in Techie
There is a really handy utility for Un*x called: redir (redir.c). It is a user level program that does port redirection. It’s really handy if you want a quick and dirty way of making traffic on one port on your machine point to another port on another machine. I’ve used this technique to by-pass firewalls and bounce traffic through places it’s not supposed to go.
I could have used iptables or ipchains, but these require root access which you might not have. Under Un*x you need root privileges to open a port numbered less than 1000 but most of the time you are re-routing normal application services like Oracle Forms and jInitiator which opens a gazillion ports to various machines to do application server stuff.
Also using iptables or ipchains is so final, not to mention fiddly to set up! Besides another reason to use redir is that the program can be modified to allow you to watch or collect the traffic, which could be infinitely more useful ;)
Unfortunately, redir is no longer in a standard distro so it has to be built from scratch. The program itself hasn’t changed for about 10 years so it is only available in source and patched source. I’m going to describe below how to download, patch and build the redir application.
- Create a working folder and go into it.
mkdir redir cd redir
- Go to http://redir.sourcearchive.com/ and find the latest version.
- At the time of writing this article the latest version is 2.2.1-9. Download those components.
wget http://redir.sourcearchive.com/downloads/2.2.1-9/redir_2.2.1.orig.tar.gz wget http://redir.sourcearchive.com/downloads/2.2.1-9/redir_2.2.1-9.diff.gz wget http://redir.sourcearchive.com/downloads/2.2.1-9/redir_2.2.1-9.dsc
- Check the integrity of the downloads with md5sum and compare them against the values listed in the *.dsc file
md5sum redir_2.2.1-9.diff.gz redir_2.2.1.orig.tar.gz e82abbecfa8ca5941e6601d61b84303d redir_2.2.1-9.diff.gz 4342fadac30504c86c8db7beefe01995 redir_2.2.1.orig.tar.gz
- Uncompress the sources.
gunzip redir_2.2.1-9.diff.gz tar -xvzf redir_2.2.1.orig.tar.gz
- The first patch expects the files to be in different places, so shift things around a little to make it match up, don’t worry about the mv/subdirectory warning.
mv redir-2.2.1 redir-2.2.1.orig mkdir redir-2.2.1.orig/debian mv redir-2.2.1.orig/* redir-2.2.1.orig/debian
- Now apply the patch.
patch -p0 -i redir_2.2.1-9.diff
- There’s no dpatch on Plesk so we will have to apply the patches by hand using the normal patch command. Change to the main source folder.
cd redir-2.2.1.orig/debian
- The patches must be applied in order so list them out and build a patch script.
ls patches/[0-9][0-9]_* | sed ’s/^/patch -i &/’ > do.patch
- Then run them all.
sh ./do.patch
- Now that we have applied all the patches, we must clean and build.
make clean make
- Launch the port redirector service in the background.
./redir –lport=12345 –cport=22 &
- Connect to the service.
ssh -D 12345 localhost
- Log in and then log out.
hostname exit
- Kill service.
kill %1
No feedback yet
Form is loading...