Настраиваем VPN-сервер на Ubuntu
Сейчас услуги VPN особенно популярны среди «продвинутых» пользователей тех стран, где существуют проблемы со свободой слова и свободным доступом к информации (Китай, Белоруссия, Россия и ряд других). Оставим в стороне политику, но заметим, что свободный доступ к информации — это то, что сделало Интернет популярным и полезным явлением.
Давайте попробуем сделать собственный VPN-сервер на базе самой простой SSD VDS. Среди множества технологий будем использовать L2TP/IPSec — именно этот тип VPN-туннелей поддерживается не только настольными операционными системами, но и устройствами на базе Apple IOS (iPhone, iPad) и Android.
Хотите начать использовать собственный VPN прямо сейчас?
На первом этапе — закажем SSD VDS и в качестве операционной системы выберем Ubuntu. Требований к ресурсам особых нет, поэтому можно выбрать самый простой тариф, с 512Mb памяти. Установка операционной системы занимает около 5-7 минут, а по окончании инсталляции в почтовый ящик поступит email с данным доступа к VDS. Вооружимся любым SSH-клиентом (например, PuTTY) и приступим к настройке.
Установим необходимые приложения:
1 |
apt-get install openswan xl2tpd ppp |
При установке инсталлятор задаст вопрос о генерации ключей. Откажемся от автоматической генерации ключей (выберем «No» в диалоге).
С помощью любимого текстового редактора (vi или nano) отредактируем файл /etc/ipsec.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
version 2.0 config setup nat_traversal=yes oe=off protostack=netkey conn L2TP-PSK authby=secret pfs=no rekey=no type=tunnel esp=aes128-sha1 ike=aes128-sha-modp1024 ikelifetime=8h keylife=1h left=185.14.XX.XX leftnexthop=%defaultroute leftprotoport=17/1701 right=%any rightprotoport=17/%any rightsubnetwithin=0.0.0.0/0 auto=add dpddelay=30 dpdtimeout=120 dpdaction=clear |
Обратите внимание на параметр left=, в нем нужно указать IP-адрес VDS.
Следующим шагом — добавим ключ шифрования. Для этого в укажем в файле /etc/ipsec.secrets желаемый ключ (смените его значение на какое-то более секретное):
1 |
%any %any: PSK "TestSecret" |
Перейдем к настройке L2TP. Откроем в редакторе файл /etc/xl2tpd/xl2tpd.conf и приведем его содержимое к следующему виду:
1 2 3 4 5 6 7 8 9 10 11 |
[global] ipsec saref = yes [lns default] ip range = 192.168.1.231-192.168.1.239 local ip = 192.168.1.230 refuse chap = yes refuse pap = yes require authentication = yes ppp debug = no pppoptfile = /etc/ppp/options.xl2tpd length bit = yes |
Теперь займемся настройкой PPP. Наша следующая цель — файл конфигурации /etc/ppp/options.xl2tpd:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
require-mschap-v2 ms-dns 8.8.8.8 asyncmap 0 auth crtscts lock hide-password modem debug name l2tpd proxyarp lcp-echo-interval 30 lcp-echo-failure 4 |
Наше соединение использует авторизацию по паролю, поэтому укажем его в соответствующем файле — /etc/ppp/chap-secrets:
1 |
* * TestPassword * |
С настройками VPN мы закончили, но нам нужно включить NAT (трансляцию адресов) в сетевых настройках операционной системы. Откроем файл /etc/rc.local и в его самом начале укажем следующие команды:
1 2 |
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE |
На этом настройка нашего VPN-сервера окончена. Перезагрузим VDS командой reboot и через минуту можно начинать пользоваться нашим шифрованным каналом доступа в Интернет. А пока давайте произведем настройку нашего iPhone. Перейдем в «Настройки» — «VPN», затем выберем «Добавить конфигурацию VPN…». Заполним поля:
- Тип VPN — L2TP
- Описание — выберите любое удобное название, например My VPN или ITLDC VPN
- Сервер — указываем IP-адрес нашей VDS
- Учетная запись — любое имя
- RSA SecurID — выключен
- Пароль — выбранный пароль (в нашем примере — TestPassword)
- Общий ключ — ключ шифрования (TestSecret)
На этом настройка клиентской части окончена, выбираем «Сохранить». Чтобы подключиться к VPN, необходимо в «Настройках» нашего iPhone или iPad включить слайдером соответствующий режим. Подключение производится достаточно быстро и через несколько секунд можно пользоваться всеми благами Интернет — без каких либо ограничений.