Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save amanjuman/b09182b11142e2589eea4b639f87ea3a to your computer and use it in GitHub Desktop.
Save amanjuman/b09182b11142e2589eea4b639f87ea3a to your computer and use it in GitHub Desktop.
Raspberry Pi SoftEtherVPN Client as VPN Wifi Router
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y
apt-get -y install build-essential wget curl gcc make wget tzdata git libreadline-dev libncurses-dev libssl-dev zlib1g-dev
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.30-9696-beta/softether-vpnclient-v4.30-9696-beta-2019.07.08-linux-arm_eabi-32bit.tar.gz
tar xzf softether-vpnclient-v4.30-9696-beta-2019.07.08-linux-arm_eabi-32bit.tar.gz && rm softether-vpnclient-v4.30-9696-beta-2019.07.08-linux-arm_eabi-32bit.tar.gz
echo net.ipv4.ip_forward = 1 | ${SUDO} tee -a /etc/sysctl.conf
echo net.ipv6.ip_forward = 1 | ${SUDO} tee -a /etc/sysctl.conf
cd vpnclient
sudo make
cd ..
sudo mv vpnclient /usr/local
cd /usr/local/vpnclient/
sudo chmod 600 *
sudo chmod 700 vpnclient vpncmd
sudo ./vpnclient start
sudo ./vpncmd
remoteenable
niccreate
svpn
accountimport
/home/pi/vpn-config-name
accountconnect vpn-config-name
accountstartupset vpn-config-name
sudo cat >> /etc/init.d/vpnclient << EOF
#! /bin/sh
### BEGIN INIT INFO
# Provides: vpnclient
# Required-Start: $all
# Required-Stop: $network $local_fs $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VPN Client at boot time
# chkconfig: 345 44 56
# description: Start VPN Client at boot time.
# processname: vpnclient
### END INIT INFO
# /etc/init.d/vpnclient
case "$1" in
start)
echo "Starting VPN Client"
/usr/local/vpnclient/vpnclient start
sudo dhclient vpn_svpn
#route add -host 1.2.3.4 gw 192.168.2.1
#route del default
#route add default gw 192.168.5.1 dev vpn_svpn
;;
stop)
echo "Stopping VPN Client"
/usr/local/vpnclient/vpnclient stop
#route del -host 1.2.3.4
#route del default
#route add default gw 192.168.2.1 dev eth0
;;
*)
echo "Usage: /etc/init.d/vpnclient {start|restart|stop}"
exit 1
;;
esac
exit 0
EOF
sudo chmod 755 /etc/init.d/vpnclient
sudo update-rc.d vpnclient defaults
wget -qO- http://ipecho.net/plain ; echo
sudo netstat -rn
sudo apt-get install hostapd dnsmasq -y
sudo systemctl stop hostapd
sudo systemctl stop dnsmasq
nano /etc/dhcpcd.conf
denyinterfaces wlan0
denyinterfaces eth0
nano /etc/dnsmasq.conf
interface=wlan0
listen-address=192.168.3.1
bind-interfaces
server=1.1.1.1
domain-needed
bogus-priv
dhcp-range=192.168.3.100,192.168.3.200,24h
nano /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
bridge=br0
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid=NETWORK
wpa_passphrase=PASSWORD
nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
sudo systemctl start hostapd
sudo systemctl start dnsmasq
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo apt install bridge-utils iptables-persistent -y
sudo brctl addbr br0
sudo brctl addif br0 vpn_svpn
nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto-hotplug vpn_svpn
iface vpn_svpn inet dhcp
auto br0
iface br0 inet manual
bridge_ports vpn_svpn wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment