mirror of
https://github.com/sshuttle/sshuttle.git
synced 2025-05-05 16:44:40 +02:00
Adding more robust exit codes
This commit is contained in:
parent
a95491765d
commit
2f11f50bc2
@ -1,4 +1,4 @@
|
|||||||
description "Create a tunnel over SSH proxy"
|
description "Create a transparent proxy over SSH"
|
||||||
author "Jim Wyllie <jwyllie83@gmail.com>"
|
author "Jim Wyllie <jwyllie83@gmail.com>"
|
||||||
|
|
||||||
manual
|
manual
|
||||||
@ -8,15 +8,24 @@ nice -5
|
|||||||
# tunnel.
|
# tunnel.
|
||||||
env PREFIX_LOCATION=/etc/sshuttle/prefixes.conf
|
env PREFIX_LOCATION=/etc/sshuttle/prefixes.conf
|
||||||
|
|
||||||
# Try all the keys in a given key directory
|
|
||||||
env KEY_LOCATION=/etc/sshuttle/keys
|
|
||||||
|
|
||||||
# Routing table; defaults to 100
|
# Routing table; defaults to 100
|
||||||
env ROUTE_TABLE=100
|
env ROUTE_TABLE=100
|
||||||
|
|
||||||
# fwmark; defaults to 1
|
# fwmark; defaults to 1
|
||||||
env FWMARK=1
|
env FWMARK=1
|
||||||
|
|
||||||
|
# SSH tunnel configuration file
|
||||||
|
env SSHUTTLE_TUNNEL_FILE=/etc/sshuttle/tunnel.conf
|
||||||
|
|
||||||
|
# File containing the tunnel proxy name / host / whatever
|
||||||
|
env TUNNEL_PROXY="/etc/sshuttle/tunnel.conf"
|
||||||
|
|
||||||
|
# Any other commands needed to run before or after loading the SSH tunnel.
|
||||||
|
# This is where you can put any of your hacks to set up tunnels-in-tunnels,
|
||||||
|
# etc. Scripts in this directory are executed in order.
|
||||||
|
env MISC_START_DIR=/etc/sshuttle/pre-start.d
|
||||||
|
env MISC_STOP_DIR=/etc/sshuttle/post-stop.d
|
||||||
|
|
||||||
start on (local-filesystems and net-device-up IFACE!=lo)
|
start on (local-filesystems and net-device-up IFACE!=lo)
|
||||||
stop on stopping network-services
|
stop on stopping network-services
|
||||||
|
|
||||||
@ -30,8 +39,6 @@ pre-start script
|
|||||||
if [ -f "${PREFIX_LOCATION}" ]; then
|
if [ -f "${PREFIX_LOCATION}" ]; then
|
||||||
cat "${PREFIX_LOCATION}" | while read ROUTE; do
|
cat "${PREFIX_LOCATION}" | while read ROUTE; do
|
||||||
|
|
||||||
logger "Working on route: ${ROUTE}"
|
|
||||||
|
|
||||||
# Skip comments
|
# Skip comments
|
||||||
if [ -n "$(echo ${ROUTE} | egrep "^[ ]*#")" ]; then
|
if [ -n "$(echo ${ROUTE} | egrep "^[ ]*#")" ]; then
|
||||||
continue
|
continue
|
||||||
@ -42,18 +49,21 @@ pre-start script
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
logger "Adding route command: ip route add local ${ROUTE} dev lo table ${ROUTE_TABLE}"
|
logger "Adding route: ${ROUTE}"
|
||||||
ip route add local ${ROUTE} dev lo table ${ROUTE_TABLE}
|
ip route add local ${ROUTE} dev lo table ${ROUTE_TABLE}
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
for RUNFILE in ${MISC_START_DIR}/*; do
|
||||||
|
logger "Executing ${RUNFILE}"
|
||||||
|
/bin/sh -c "${RUNFILE}"
|
||||||
|
done
|
||||||
end script
|
end script
|
||||||
|
|
||||||
post-stop script
|
post-stop script
|
||||||
if [ -f "${PREFIX_LOCATION}" ]; then
|
if [ -f "${PREFIX_LOCATION}" ]; then
|
||||||
cat "${PREFIX_LOCATION}" | while read ROUTE; do
|
cat "${PREFIX_LOCATION}" | while read ROUTE; do
|
||||||
|
|
||||||
logger "Working on route: ${ROUTE}"
|
|
||||||
|
|
||||||
# Skip comments
|
# Skip comments
|
||||||
if [ -n "$(echo ${ROUTE} | egrep "^[ ]*#")" ]; then
|
if [ -n "$(echo ${ROUTE} | egrep "^[ ]*#")" ]; then
|
||||||
continue
|
continue
|
||||||
@ -64,12 +74,17 @@ post-stop script
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
logger "Deleting route command: ip route del local ${ROUTE} dev lo table ${ROUTE_TABLE}"
|
logger "Deleting route: ${ROUTE}"
|
||||||
ip route del local ${ROUTE} dev lo table ${ROUTE_TABLE}
|
ip route del local ${ROUTE} dev lo table ${ROUTE_TABLE}
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ip rule del fwmark ${FWMARK}
|
ip rule del fwmark ${FWMARK}
|
||||||
|
|
||||||
|
for RUNFILE in "${MISC_STOP_DIR}/*"; do
|
||||||
|
logger "Executing ${RUNFILE}"
|
||||||
|
/bin/sh -c "${RUNFILE}"
|
||||||
|
done
|
||||||
end script
|
end script
|
||||||
|
|
||||||
exec sleep 60
|
exec /home/jim/Projects/sshuttle.udp/src/sshuttle --method=tproxy --listen 0.0.0.0 --remote sshuttle_tunnel -s /etc/sshuttle/prefixes.conf -e "ssh -F ${TUNNEL_PROXY}"
|
||||||
|
11
src/main.py
11
src/main.py
@ -193,7 +193,7 @@ try:
|
|||||||
ipport_v6 = parse_ipport6(ip)
|
ipport_v6 = parse_ipport6(ip)
|
||||||
else:
|
else:
|
||||||
ipport_v4 = parse_ipport4(ip)
|
ipport_v4 = parse_ipport4(ip)
|
||||||
sys.exit(client.main(ipport_v6, ipport_v4,
|
return_code = client.main(ipport_v6, ipport_v4,
|
||||||
opt.ssh_cmd,
|
opt.ssh_cmd,
|
||||||
remotename,
|
remotename,
|
||||||
opt.python,
|
opt.python,
|
||||||
@ -204,7 +204,14 @@ try:
|
|||||||
opt.auto_nets,
|
opt.auto_nets,
|
||||||
parse_subnets(includes),
|
parse_subnets(includes),
|
||||||
parse_subnets(excludes),
|
parse_subnets(excludes),
|
||||||
opt.syslog, opt.daemon, opt.pidfile))
|
opt.syslog, opt.daemon, opt.pidfile)
|
||||||
|
|
||||||
|
if return_code == 0:
|
||||||
|
log('Normal exit code, exiting...')
|
||||||
|
else:
|
||||||
|
log('Abnormal exit code detected, failing...' % return_code)
|
||||||
|
sys.exit(return_code)
|
||||||
|
|
||||||
except Fatal, e:
|
except Fatal, e:
|
||||||
log('fatal: %s\n' % e)
|
log('fatal: %s\n' % e)
|
||||||
sys.exit(99)
|
sys.exit(99)
|
||||||
|
Loading…
Reference in New Issue
Block a user