SSH PPP VPN: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „cat /usr/local/sbin/vpn-pppd #!/bin/sh #SERVER_HOSTNAME=" gaius -p 22" SERVER_HOSTNAME=" 80.153.192.133 -p 7322" LOCAL_NET=192.168.240.0/20 REMOTE_NET=192.168.150…“) |
Thomas (Diskussion | Beiträge) |
||
| Zeile 1: | Zeile 1: | ||
| − | cat /usr/local/sbin/vpn-pppd | + | cat /usr/local/sbin/vpn-pppd |
| − | #!/bin/sh | + | #!/bin/sh |
| − | #SERVER_HOSTNAME=" gaius -p 22" | + | #SERVER_HOSTNAME=" gaius -p 22" |
| − | SERVER_HOSTNAME=" 80.153.192.133 -p 7322" | + | SERVER_HOSTNAME=" 80.153.192.133 -p 7322" |
| − | LOCAL_NET=192.168.240.0/20 | + | LOCAL_NET=192.168.240.0/20 |
| − | REMOTE_NET=192.168.150.0/24 | + | REMOTE_NET=192.168.150.0/24 |
| − | SERVER_USERNAME=root | + | SERVER_USERNAME=root |
| − | ######## | + | ######## |
| − | SERVER_IFIPADDR=172.29.29.1 | + | SERVER_IFIPADDR=172.29.29.1 |
| − | CLIENT_IFIPADDR=172.29.29.3 | + | CLIENT_IFIPADDR=172.29.29.3 |
| − | LOCAL_SSH_OPTS="-P" | + | LOCAL_SSH_OPTS="-P" |
| + | |||
| + | PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11/: | ||
| − | + | PPPD=/usr/sbin/pppd | |
| + | SSH=/usr/bin/ssh | ||
| + | ROUTE=/sbin/route | ||
| + | ADD_FORT="/sbin/sysctl -w net.ipv4.ip_forward=1" | ||
| + | DEl_FORT="/sbin/sysctl -w net.ipv4.ip_forward=0" | ||
| + | ADD_SNAT="/sbin/iptables -t nat -A POSTROUTING -s $LOCAL_NET -j MASQUERADE -o eth0" | ||
| + | DEL_SNAT="/sbin/iptables -t nat -D POSTROUTING -s $LOCAL_NET -j MASQUERADE -o eth0" | ||
| + | |||
| + | if ! test -f $PPPD ; then echo "can't find $PPPD"; exit 3; fi | ||
| + | if ! test -f $SSH ; then echo "can't find $SSH"; exit 4; fi | ||
| + | |||
| + | |||
| + | case "$1" in | ||
| + | start) | ||
| + | echo -n "Starting vpn to $SERVER_HOSTNAME: " | ||
| + | ${PPPD} updetach noauth passive pty "${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} -o Batchmode=yes ${PPPD} nodetach notty noauth" ipparam vpn ${CLIENT_IFIPADDR}:${SERVER_IFIPADDR} | ||
| + | ${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${ROUTE} add -net ${LOCAL_NET} gw ${CLIENT_IFIPADDR} | ||
| + | ${ROUTE} add -net ${REMOTE_NET} gw ${SERVER_IFIPADDR} | ||
| + | ${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${ADD_FORT} | ||
| + | ${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${ADD_SNAT} | ||
| − | + | # echo "connected." | |
| − | + | ;; | |
| − | + | ||
| − | + | stop) | |
| − | + | # echo -n "Stopping vpn to $SERVER_HOSTNAME: " | |
| − | + | ${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${DEL_SNAT} | |
| − | + | PID=`ps ax | grep "${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} -o" | grep -v ' passive ' | grep -v 'grep ' | awk '{print $1}'` | |
| + | if [ "${PID}" != "" ]; then | ||
| + | kill $PID | ||
| + | echo "disconnected." | ||
| + | else | ||
| + | echo "Failed to find PID for the connection" | ||
| + | fi | ||
| + | ;; | ||
| − | + | config) | |
| − | + | echo "SERVER_HOSTNAME=$SERVER_HOSTNAME" | |
| + | echo "SERVER_USERNAME=$SERVER_USERNAME" | ||
| + | echo "SERVER_IFIPADDR=$SERVER_IFIPADDR" | ||
| + | echo "CLIENT_IFIPADDR=$CLIENT_IFIPADDR" | ||
| + | ;; | ||
| + | *) | ||
| + | echo "Usage: vpn {start|stop|config}" | ||
| + | exit 1 | ||
| + | ;; | ||
| + | esac | ||
| − | + | exit 0 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | exit 0 | ||
Version vom 25. November 2013, 14:16 Uhr
cat /usr/local/sbin/vpn-pppd #!/bin/sh #SERVER_HOSTNAME=" gaius -p 22" SERVER_HOSTNAME=" 80.153.192.133 -p 7322" LOCAL_NET=192.168.240.0/20 REMOTE_NET=192.168.150.0/24 SERVER_USERNAME=root ######## SERVER_IFIPADDR=172.29.29.1 CLIENT_IFIPADDR=172.29.29.3 LOCAL_SSH_OPTS="-P" PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11/:
PPPD=/usr/sbin/pppd
SSH=/usr/bin/ssh
ROUTE=/sbin/route
ADD_FORT="/sbin/sysctl -w net.ipv4.ip_forward=1"
DEl_FORT="/sbin/sysctl -w net.ipv4.ip_forward=0"
ADD_SNAT="/sbin/iptables -t nat -A POSTROUTING -s $LOCAL_NET -j MASQUERADE -o eth0"
DEL_SNAT="/sbin/iptables -t nat -D POSTROUTING -s $LOCAL_NET -j MASQUERADE -o eth0"
if ! test -f $PPPD ; then echo "can't find $PPPD"; exit 3; fi
if ! test -f $SSH ; then echo "can't find $SSH"; exit 4; fi
case "$1" in
start)
echo -n "Starting vpn to $SERVER_HOSTNAME: "
${PPPD} updetach noauth passive pty "${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} -o Batchmode=yes ${PPPD} nodetach notty noauth" ipparam vpn ${CLIENT_IFIPADDR}:${SERVER_IFIPADDR}
${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${ROUTE} add -net ${LOCAL_NET} gw ${CLIENT_IFIPADDR}
${ROUTE} add -net ${REMOTE_NET} gw ${SERVER_IFIPADDR}
${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${ADD_FORT}
${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${ADD_SNAT}
# echo "connected."
;;
stop)
# echo -n "Stopping vpn to $SERVER_HOSTNAME: "
${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} ${DEL_SNAT}
PID=`ps ax | grep "${SSH} ${LOCAL_SSH_OPTS} ${SERVER_HOSTNAME} -l${SERVER_USERNAME} -o" | grep -v ' passive ' | grep -v 'grep ' | awk '{print $1}'`
if [ "${PID}" != "" ]; then
kill $PID
echo "disconnected."
else
echo "Failed to find PID for the connection"
fi
;;
config)
echo "SERVER_HOSTNAME=$SERVER_HOSTNAME"
echo "SERVER_USERNAME=$SERVER_USERNAME"
echo "SERVER_IFIPADDR=$SERVER_IFIPADDR"
echo "CLIENT_IFIPADDR=$CLIENT_IFIPADDR"
;;
*)
echo "Usage: vpn {start|stop|config}"
exit 1
;;
esac
exit 0