Stone: An awesome packet repeater tool that will save your day

Theres a saying that “There’s more than one way to bake a cake” I often believe that this applies to Linux eco system as well. Interestingly  I was in a situation where there was a requirement to connect two network interfaces to make a bunch of connections happen. I already had some  options on my table, such as iptables, bridge-utils etc. But I decided not to use them for one reason that I wanted even simpler solution. And suddenly I came across a tool called stone.

Stone is a simple TCP/IP packet repeater according to its manual but it also does UDP/IP repeating. It also supports proxy, ssl encryption etc.It is available in Debian and Ubuntu repository.

Using stone I solved my problem but I found that the tool offers much more than that and there was no documentation other than the man pages so I thought of writing one. In order to show some bunch of example let me give a picture of my system settings

My system consist of two interfaces Eth0 and Wlan0. And Eth0 is having  IP 192.168.1.2 and Wlan0 with IP 10.0.2.2.

 

system

Telnet Repeater using Stone:

Assume that you want to redirect telnet service that is running at IP 192.168.1.2 at port 23 to IP  10.0.2.2. at port 100023. A telnet server is running at IP  192.168.1.2/Eth0 at port 23. Now you dont want to run the telnet service for the IP 10.0.2.2/Wlan0 at the same port instead at port 10023.

 

stone-telnet

 

$sudo apt-get install stone.
$ stone 192.168.1.2:telnet 10.0.2.2:10023
$telnet 10.0.2.2 10023

Trying 10.0.2.2 ...
Connected to 10.0.2.2.
Escape character is '^]'.
Ubuntu 14.04 LTS
lab login:

SSL Telnet using stone

Now Lets try to run a secure telnet to the outer side of the wireless interface.

stone-telnet-ssl-1

Install SSL Telnet Client

sudo apt-get install telnet-ssl
sudo stone localhost:telnet 10023/ssl
$telnet-ssl localhost 10023

Multiple rules using stone

If you want to combine more than one redirection rule then use “–” as the seperator for adding multiple rules.

stone-multiple-rules-1024x483

sudo stone 192.168.1.2:telnet 10.0.2.2:10023 -- 192.168.1.2:ssh 10.0.2.2:10022 -- 192.168.1.2:ftp 10.0.2.2:10021

Proxy service using Stone
Stone can also be used as a proxy server with and without authentication. This example
is without using authentication.

stone-proxy

$sudo stone proxy 10.0.2.2:8080

$export http_proxy=10.0.2.2:8080

$wget www.google.com

Truly the stone tool is a swiss army knife. Refer to man page for more examples. If you find this article interesting kindly share it, if you have any feedback or correction please comment below.

One thought on “Stone: An awesome packet repeater tool that will save your day

Leave a Reply

Your email address will not be published. Required fields are marked *