Index‎ > ‎Docs‎ > ‎archive‎ > ‎LabsFolder‎ > ‎

Bounce & FreeBSD

Subject: to bounce (redirect) tcp connections to another machine/port.

Solution: cd /usr/ports/net/bounce/ && make install distclean
Usage: bounce [-a localaddr | -b localaddr] [-p localport] machine port

This is the rc.d(8) script based on rc.subr(8) for bounce (you can safe it under the name /usr/local/etc/rc.d/bounce with rights to execute: chmod +x /usr/local/etc/rc.d/bounce):

#------- the start of the script -------
#!/bin/sh

# Author: Stepan A. Baranov (rosmir@gmail.com)
# web-site: www.rosmir.org

# PROVIDE: bounce
# REQUIRE: NETWORKING
# KEYWORD: nojail

. /etc/rc.subr

name="bounce"
rcvar=`set_rcvar`
start_cmd="bounce_start"
stop_cmd="bounce_stop"

init_variables() {
  _b="$1"

  if [ -z "$_b" ]; then
    warn "init_variables: you must specify a bond"
    return
  fi

  eval bounce_vars=\"\$bounce_${_b}_vars\"
}

bounce_start() {
  for _bond in ${bounce_list}
  do
    echo $_bond
    init_variables $_bond
    /usr/local/sbin/bounce ${bounce_vars}
  done
}

bounce_stop() {
  killall bounce
}

load_rc_config $name
run_rc_command "$1"
#------- the end of the script -------

To enable the start of bounce you must add, for example, following lines to your /etc/rc.conf file like these:
bounce_enable="YES"
bounce_list="b1 b2"
bounce_b1_vars="-a localaddr -p localport1 machine1 port1"
bounce_b2_vars="-a localaddr -p localport2 machine2 port2"


©2009 Rosmir - Stepan A. Baranov
$Id: bounce.html 417 2009-01-07 16:41:34Z rosmir $