Your message dated Thu, 24 Jul 2008 16:47:06 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#491294: fixed in iodine 0.4.1-4
has caused the Debian Bug report #491294,
regarding Script to start iodine client and set up routing
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
491294: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=491294
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: iodine
Version: 0.4.1-3
Severity: wishlist

I wrote a little script to set up an iodine DNS tunnel.  It tries to
figure out the situation and do the right thing, and also to give some
reasonable diagnostics, and it is externally configurable and also
has a rudementary debugging facility (run as non-root with
continue_on_error=true).  Thought I'd share it, in case others might
find it useful.

                                        --Barak.
--
Barak A. Pearlmutter
 Hamilton Institute & Dept Comp Sci, NUI Maynooth, Co. Kildare, Ireland
 http://www.bcl.hamilton.ie/~barak/
#! /bin/bash

## Cause script to bail immediately on failed command
set -e

## OPTIONS TO SET

echo "${iodine_client_rc:=/etc/default/iodine-client}" > /dev/null

if [ -r ${iodine_client_rc} ]; then
    . ${iodine_client_rc}
else
    echo WARNING: Cannot read ${iodine_client_rc}
fi

echo "${subdomain:=your-subdomain.example.com}" > /dev/null
echo "${passwd:=yourpassword}"                  > /dev/null

echo "${testhost:=slashdot.org}"                > /dev/null

echo "${bounce_localnet:=true}"                 > /dev/null
echo "${test_ping_localnet:=true}"              > /dev/null
echo "${test_ping_tunnel:=true}"                > /dev/null
echo "${test_ping_final:=true}"                 > /dev/null

echo "${default_router}"                        > /dev/null

echo "${continue_on_error:=false}"              > /dev/null

## DEBIAN PACKAGES TO INSTALL:
##  iodine (for /usr/sbin/iodine)
##  iproute (for /bin/ip)
##  ipcalc (for /usr/bin/ipcalc)
##  dnsutils (for /usr/bin/dig)
##  fping (for /usr/bin/fping)

## If local DNS server restricts to 512 byte packets then do this:
# ifconfig ${d} mtu 220
## default MTU is 1024

## Remaining issues:
## - avoid double ping when DNS server and local router are the same

echo ==== Creating IP-over-DNS tunnel over local network connection...


## Find a network interface

if [ -z ${interface} ]; then
    interface=$(tail --lines=+3 /proc/net/wireless \
        | head -1 | tr -d : | awk '{print $1}')
fi

if [ -z ${interface} ]; then
    interface=$(ifconfig -a | egrep '^[^ ].*encap:Ethernet' \
        | head -1 | awk '{print $1}')
fi

if [ -z ${interface} ]; then
    echo ERROR: No network interface found
    exit 1
fi

echo ==== Local network interface: ${interface}

## Down any existing DNS tunnel (wish there were "approved" way to do this)

echo ==== Killing existing DNS tunnels...
if killall --quiet --wait --verbose --signal HUP iodine; then
    sleep 2
fi

## Stabilize local network

if ${bounce_localnet}; then
    echo ==== Bouncing local network connection...
    ifdown --force ${interface} || true
    ifup ${interface} || ${continue_on_error}
fi

## Fetch some information about the local network

addr=$(ip -4 addr show dev ${interface} scope global | tail -1 | awk '{print 
$2}')
prefix_len=$(echo ${addr} | sed 'sX^.*/XX')
local_net=$(ipcalc --nobinary ${addr} | awk '$1=="Network:" {print $2}')

echo ==== Local address: ${addr}
echo ==== Local network: ${local_net}

router=$(ip -4 route list dev ${interface} | awk '$1=="default" {print $3}' | 
head -1)
if [ -z ${router} ]; then
    ## This can happen when the default local route is already deleted
    echo WARNING: no default route, guessing local router IP address
    if [ -z ${default_router} ]; then
        ## Minimum address on local net is usually right
        router=$(ipcalc --nobinary ${addr} | awk '$1=="HostMin:" {print $2}')
    else
        ## But sometimes ned to hardwire...
        router=${default_router}
    fi
fi

echo ==== Local network router: ${router}

## Test DNS service

testhost_ip=$(dig +short -t A -q ${testhost})
if [ -z ${testhost_ip} ]; then
    echo WARNING: Failure on DNS lookup of ${testhost}
fi

## fetch DNS servers

nameservers=$(awk '$1=="nameserver" {print $2}' /etc/resolv.conf)
if [ -n "${nameservers}" ]; then
    echo ==== DNS servers: ${nameservers}
else
    echo ERROR: No DNS servers found
    exit 1
fi

## Test if local network is up

if ${test_ping_localnet}; then
    echo ==== Ping test of  local network router and DNS servers...
    fping -C1 ${router} ${nameservers} \
        || echo WARNING: Ping test failed.
fi

## Add point-to-point routes for any non-local DNS servers

for n in ${nameservers}; do
    n_net=$(ipcalc --nobinary ${n}/${prefix_len} | awk '$1=="Network:" {print 
$2}')
    if [ "${n_net}" != "${local_net}" ]; then
        echo ==== Adding point-to-point route for DNS server ${n}
        ip -4 route add ${n}/32 via ${router} || ${continue_on_error}
    fi
done

## Bring up DNS tunnel

echo ==== Creating IP-over-DNS tunnel...
iodine -P ${passwd} ${subdomain} || ${continue_on_error}

## Find DNS tunnel interface

tunnel_interface=$(ifconfig -a | egrep '^dns' | awk '{print $1}' | head -1)
if [ -z "${tunnel_interface}" ]; then
    echo WARNING: Cannot find DNS tunnel interface, using default.
    tunnel_interface=dns0
fi
echo ==== DNS tunnel interface: ${tunnel_interface}

## Figure out router at other end of tunnel, assuming router uses final octet .1
## (There should be some way to get this information out of iodine, since
## it *prints* it as it sets up the tunnel, so it does know it.)

tunnel_remote=$(ip -4 address show dev ${tunnel_interface} \
    | awk '$1=="inet" {print gensub("[.][0-9]*/.*", ".1", 1, $2)}' | head -1)

if [ -z ${tunnel_remote} ]; then
    echo ERROR: Cannot find DNS tunnel remote endpoint.
    ${continue_on_error}
    ## set something random if debugging
    tunnel_remote=192.168.253.1
fi

echo ==== DNS tunnel remote endpoint: ${tunnel_remote}

if ${test_ping_tunnel}; then
    echo ==== Ping test of local router, nameserver, and DNS tunnel...
    fping -C1 ${router} ${nameservers} ${tunnel_remote} \
        || echo WARNING: Ping test failed.
fi

## Modify routing table to send trafic via DNS tunnel

echo ==== Setting default route through DNS tunnel...

## Remove default route via local router
ip -4 route del default via ${router} || ${continue_on_error}
## Add default via tunnel
ip -4 route add default via ${tunnel_remote} || ${continue_on_error}

## Test if all is well

if ${test_ping_final}; then
    echo ==== Ping test of local router, nameserver, DNS tunnel, and external 
test host...
    fping -C1 ${router} ${nameservers} ${tunnel_remote} 
${testhost_ip:-${testhost}} \
        || echo WARNING: Ping test failed.
fi

--- End Message ---
--- Begin Message ---
Source: iodine
Source-Version: 0.4.1-4

We believe that the bug you reported is fixed in the latest version of
iodine, which is due to be installed in the Debian FTP archive:

iodine_0.4.1-4.diff.gz
  to pool/main/i/iodine/iodine_0.4.1-4.diff.gz
iodine_0.4.1-4.dsc
  to pool/main/i/iodine/iodine_0.4.1-4.dsc
iodine_0.4.1-4_i386.deb
  to pool/main/i/iodine/iodine_0.4.1-4_i386.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
gregor herrmann <[EMAIL PROTECTED]> (supplier of updated iodine package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Thu, 24 Jul 2008 18:35:59 +0200
Source: iodine
Binary: iodine
Architecture: source i386
Version: 0.4.1-4
Distribution: unstable
Urgency: low
Maintainer: gregor herrmann <[EMAIL PROTECTED]>
Changed-By: gregor herrmann <[EMAIL PROTECTED]>
Description: 
 iodine     - tool for tunneling IPv4 data through a DNS server
Closes: 483299 491294
Changes: 
 iodine (0.4.1-4) unstable; urgency=low
 .
   * Add Czech debconf translation, thanks to Daniel Kavan
     (closes: #483299).
   * Add note for translators to debconf template and change back localized
     versions of ".example" to the original as mandated by RFC 2606.
   * Convert de.po from ISO-8859-1 to UTF-8.
   * debian/control: change my email address.
   * Switch patch system from dpatch to quilt.
   * Add example script iodine-jigger (script to set up an iodine tunnel and
     route traffic through it) by Barak A. Pearlmutter (closes: #491294).
     Thanks, Barak! Add copyright/license information about the script to
     debian/copyright. Mention the example script in README.Debian.
   * debian/copyright: wrap a long line, update years of packing copyright and
     my email address.
   * Set Standards-Version to 3.8.0; add debian/README.source to document
     quilt usage.
Checksums-Sha1: 
 9d1a8f7ca5c90722a7b8cfaf209db5fd765595fb 1214 iodine_0.4.1-4.dsc
 1294c7dc70b0f64a1a65c33e790d3f422b8470c0 13312 iodine_0.4.1-4.diff.gz
 1c537bade82b69f993b9f07fc07d2bba743a8411 37072 iodine_0.4.1-4_i386.deb
Checksums-Sha256: 
 079ab4c73355d521bf6f41334a4cdb4bb3f34311e0fba59a8de35a7c9fda5eb9 1214 
iodine_0.4.1-4.dsc
 12f6759f8b4932fcaa784afb6d5d5310d1f725f2e43107d0f95612ba3ee6bbf0 13312 
iodine_0.4.1-4.diff.gz
 6e4364a694bd76f64d584c69296b8c816a39102d643db9dda802063feedd1b4b 37072 
iodine_0.4.1-4_i386.deb
Files: 
 72391a274b3aecdceefdf64a130e498f 1214 net extra iodine_0.4.1-4.dsc
 331684c2a786c6679f2423cf11e2b799 13312 net extra iodine_0.4.1-4.diff.gz
 d9be717b2fbd83b33a98bf4a96afd9ec 37072 net extra iodine_0.4.1-4_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkiIr9QACgkQOzKYnQDzz+QPggCg0tuIQMzr9Qt2taXovL9XcYh/
q60AnibH+N+eximZMXM3eiHEFbfGF9z4
=Gr7D
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to