VPN-подключение на Digital Ocean

Пару месяцев назад я пытался установить VPN-сервер на свой сервер в Нидерландах, но потратив час, я так и не смог добиться успеха. Сегодня наткнулся на отличный скрипт, который делает всё это за три минуты.

Установка VPN-сервера

Создаёте скрипт:

sudoedit vpn.sh

Копируете туда:

#!/bin/bash
echo "Select on option:"
echo "1) Set up new PoPToP server AND create one user"
echo "2) Create additional users"
read x
if test $x -eq 1; then
echo "Enter username that you want to create (eg. client1 or john):"
read u
echo "Specify password that you want the server to use:"
read p

# get the VPS IP
ip=`ifconfig eth0 | grep 'inet addr' | awk {'print $2'} | sed s/.*://`

echo
echo "Downloading and Installing PoPToP"
apt-get update
apt-get install pptpd

echo
echo "Creating Server Config"
cat > /etc/ppp/pptpd-options <<END
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
END

# setting up pptpd.conf
echo "option /etc/ppp/pptpd-options" > /etc/pptpd.conf
echo "logwtmp" >> /etc/pptpd.conf
echo "localip $ip" >> /etc/pptpd.conf
echo "remoteip 10.1.0.1-100" >> /etc/pptpd.conf

# adding new user
echo "$u * $p *" >> /etc/ppp/chap-secrets

echo
echo "Forwarding IPv4 and Enabling it on boot"
cat >> /etc/sysctl.conf <<END
net.ipv4.ip_forward=1
END
sysctl -p

echo
echo "Updating IPtables Routing and Enabling it on boot"
iptables -t nat -A POSTROUTING -j SNAT --to $ip
# saves iptables routing rules and enables them on-boot
iptables-save > /etc/iptables.conf

cat > /etc/network/if-pre-up.d/iptables <<END
#!/bin/sh
iptables-restore < /etc/iptables.conf
END

chmod +x /etc/network/if-pre-up.d/iptables
cat >> /etc/ppp/ip-up <<END
ifconfig ppp0 mtu 1400
END

echo
echo "Restarting PoPToP"
/etc/init.d/pptpd restart

echo
echo "Server setup complete!"
echo "Connect to your VPS at $ip with these credentials:"
echo "Username:$u ##### Password: $p"

# runs this if option 2 is selected
elif test $x -eq 2; then
echo "Enter username that you want to create (eg. client1 or john):"
read u
echo "Specify password that you want the server to use:"
read p

# get the VPS IP
ip=`ifconfig venet0:0 | grep 'inet addr' | awk {'print $2'} | sed s/.*://`

# adding new user
echo "$u * $p *" >> /etc/ppp/chap-secrets

echo
echo "Addtional user added!"
echo "Connect to your VPS at $ip with these credentials:"
echo "Username:$u ##### Password: $p"

else
echo "Invalid selection, quitting."
exit
fi

Делаете его исполняемым и запускаете:

sudo chmod +x vpn.sh
./vpn.sh

На первый вопрос отвечаете «1» (нам нужно установить сервер и создать первого юзера), указываете имя нового юзера и пароль, после скачивания и установки сервера он сообщит эти данные ещё раз, чтобы вы могли их записать.

Подключение клиента

На всех моих рабочих и домашних компьютерах винда (кроме виртуалки с убунтой), поэтому расскажу как подключаться  в винде.

«Центр управления сетями и общим доступом» -> «Создание и настройка нового подключения или сети» -> «Подключение к рабочему месту» -> «Использовать моё подключение к интернету» -> В поле «Адрес в интернете» указываете IP сервера. После долгого процесса создания соединения подключаетесь к нему и вводите имя юзера и пароль.

Проверяете, зайдя к примеру на 2ip.ru — адрес должен смениться на адрес вашего сервера.