Recipe 3.17 Redirecting to Another Socket
3.17.1 Problem
You want to
redirect a connection to another host
and/or port, on the same or a different machine.
3.17.2 Solution
Use
xinetd
's
redirect keyword:
/etc/xinetd.conf or /etc/xinetd.d/myservice:
service myservice
{
...
server = path to original service
redirect = IP_address port_number
}
The server
keyword is required, but its value is
ignored. xinetd will not activate a service unless
it has a server setting, even if the service
being is redirected.
3.17.3 Discussion
For example, to redirect incoming
finger connections (port 79) to another
machine at 192.168.14.21:
/etc/xinetd.conf or /etc/xinetd.d/finger:
service finger
{
...
server = /usr/sbin/in.fingerd
redirect = 192.168.14.21 79
}
Of course you can redirect connections
to an entirely different service, such as qotd on
port 17:
service finger
{
...
server = /usr/sbin/in.fingerd
redirect = 192.168.14.21 17
}
Now incoming finger requests will instead receive
an amusing "quote of the day," as
long as the qotd service is enabled on the other
machine. You can also redirect requests to another port on the same
machine.
3.17.4 See Also
xinetd.conf(5). A tutorial can be found at http://www.macsecurity.org/resources/xinetd/tutorial.shtml.