Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2016
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. mkdir -p /tmp/etc/vpnc
  2. echo '
  3. #!/bin/sh
  4.  
  5. #### Set all Variables
  6.  
  7. vpn_concentrator=“vpn_server_address” # ip or hostname of ipsec vpn concentrator
  8. vpn_keepalive_host="youtube.com" #测试VPN是否联通的地址,我用的youtube,你也可以使用其他默认情况下不能访问的地址
  9. #### 以下参数请按照你的IPSec server来设置
  10. vpn_groupname=“vpn” # group name hereconnection
  11. vpn_grouppasswd="vpn_groupname” # group password here
  12. vpn_username=“vpn_username” # your username here
  13. vpn_password=“vpn_password” # your password here
  14.  
  15. #### Create a local script to split routes
  16.  
  17. echo "
  18. CISCO_SPLIT_INC=0
  19. CISCO_SPLIT_INC_0_ADDR=10.0.0.0 # IP range to go into first tunnel
  20. CISCO_SPLIT_INC_0_MASK=255.0.0.0 # Subnet Mask for first tunnel
  21. CISCO_SPLIT_INC_0_MASKLEN=8 # Mask length
  22. CISCO_SPLIT_INC_0_PROTOCOL=0
  23. CISCO_SPLIT_INC_0_SPORT=0
  24. CISCO_SPLIT_INC_0_DPORT=0
  25. sh /etc/vpnc/vpnc-script
  26. " > /tmp/etc/vpnc/vpnc-script-local
  27. chmod a+x /tmp/etc/vpnc/vpnc-script-local
  28.  
  29. #### Create the vpnc.conf file
  30.  
  31. echo "
  32. IPSec gateway $vpn_concentrator
  33. IPSec ID $vpn_groupname
  34. IPSec secret $vpn_grouppasswd
  35. Xauth username $vpn_username
  36. Xauth password $vpn_password
  37. Script /etc/vpnc/vpnc-script # points to the local script
  38. " > /tmp/etc/vpnc/vpnc.conf
  39.  
  40. #### Create the vpnc.sh file
  41.  
  42. pingtest () {
  43. sourceIP=$(nvram get lan_ipaddr)
  44. ping -q -c1 $1 -I $sourceIP >> /dev/null
  45. if [ "$?" == "0" ]; then
  46. echo 1 #reachable
  47.  
  48. else
  49. echo 0 #not reachable
  50. fi
  51. }
  52.  
  53. while [ true ]; do
  54. # wait until the concentrator is reachable
  55. while [ "`pingtest $vpn_concentrator`" != "1" ]; do
  56. echo "Vpnc concentrator $vpn_concentrator is not reachable, sleeping 10"
  57. sleep 10;
  58. done
  59.  
  60. if [ "`pingtest $vpn_keepalive_host`" == "1" ]; then
  61. echo "vpn connection active: $vpn_keepalive_host is alive"
  62. sleep 60;
  63. else
  64. echo "vpn connection down: $vpn_keepalive_host is unreachable"
  65. vpnc-disconnect
  66. echo "Attempting to start vpnc"
  67. vpnc /tmp/etc/vpnc/vpnc.conf --dpd-idle 0 --local-port 0
  68. tundev="`ifconfig |grep tun |cut -b 1-4|tail -n 1`"
  69. iptables -A FORWARD -o $tundev -j ACCEPT
  70. iptables -A FORWARD -i $tundev -j ACCEPT
  71. iptables -t nat -A POSTROUTING -o $tundev -j MASQUERADE
  72. stopservice dnsmasq
  73. sleep 1;
  74. startservice dnsmasq
  75. fi
  76. sleep 1;
  77. done
  78.  
  79. return 0;
  80. ' > /tmp/etc/vpnc/vpnc.sh
  81. chmod a+x /tmp/etc/vpnc/vpnc.sh
  82. sh /tmp/etc/vpnc/vpnc.sh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement