Бесплатный VPN на базе Amazon AWS

23 Июл
2012

В свете последних событий, тема анонимности в интернете особенно актуальна.
Сегодня, я хочу рассказать вам, как поднять свой VPN на базе Amazon AWS.
Если заинтересовались, добро пожаловать под кат.

Сначала вам нужно зарегистрироваться на Amazon AWS.

Далее, вы должны указать свои верные платежные данные — https://portal.aws.amazon.com/gp/aws/developer/account?ie=UTF8&action=payment-method — это необходимо.

Amazon спишет с вас примерно 1-3 доллара(с меня списали 2).

Следующий шаг — получение доступа к консоли: https://console.aws.amazon.com/ec2/home, если все предыдущие шаги выполнены успешно, то здесь не должно возникнуть проблем.

Слева, выбираем регион(Region), выбор региона не так важен, но может сказаться на пингах. В моем случае был выбран «US East (Virginia)».

Теперь приступаем к основной части: Создание инстанса.

Нажимаем «Launch Instance». Выбираем «Classic Wizard», «Continue».

Тут перед нами предстает выбор шаблона для инстанса. На выбор есть очень много различных шаблонов, те шаблоны, которые выделены звездой, являются бесплатными, подробнее: http://aws.amazon.com/free/

Я предлагаю вам выбрать «Ubuntu Server 12.04 LTS» — 32 битный, но в принципе, можете выбрать любой другой Deb-подобный дистрибутив, логика действий будет похожа.

Смело жмём «Select» -> «Continue»… и так пока не дойдем до «Create key pair».

В первом поле(«Enter a name for your key pair:*») вводим имя для файла ключа, следом нажимаем «Create&Download your key pair» файл ключа сгенерируется и скачается, как советует Amazon:
Save this file in a place you will remember. You can use this key pair to launch other instances in the future or visit the Key Pairs page to create or manage existing ones.

Нужно сохранить этот файл в месте, про которое вы не забудете. Так-же вы сможете использовать этот файл ключа для других инстанций, позже вы можете посетить страницу «Key Pairs» для создания или изменения ключей.

Configure Firewall — Create a new Security Group:
Group Name — любое.
Group Description — любое.
Ниже, создаем правила:
All tcp, All udp, All icmp. Добавляем каждое и нажимаем Continue.
Проверяем настройки, если все верно, нажимаем Launch.
Всё, сервер работает.

Теперь нам нужно разобраться с файлом ключа.
Если вы работаете из под Windows вам нужна программа Puttygen: http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
Через неё конвертируем ключ в формат ppk.

Теперь нам нужен адрес сервера, чтобы его получить, нужно в консоли Amazon перейти на вкладку Instances, там выбрать ваш инстанс и внизу вы увидите, что-то похожее на это: ec2-*-*-*-*.compute-1.amazonaws.com, это и есть адрес вашего сервера, копируем его.
Открываем SSH клиент, я использую Putty.
В Host name вставляем адрес вашего сервера.
Слева раскрываем вкладку SSH, выбираем Auth. Видим поле с выбором файла, нажимаем «Browse» ищем файл *.ppk, предварительно сконвертированный с помощью Puttygen.
Переходим обратно в Session. Рекомендую сохранить настройки, чтобы сделать это, достаточно в Saved Sessions вписать удобное вам название и нажать Save.
Всё, теперь мы сможем нормально авторизоваться до перезагрузки(отключения) инстанса.
Нажимаем два раза на сессию которую создали.

Теперь приступаем непосредственно к конфигурированию сервера.
ubuntu
sudo su
apt-get update &&  apt-get upgrade
apt-get install pptpd


Далее с помощью удобного вам консольного редактора, открываем файл: /etc/pptpd.conf
Для меня таким является nano.
nano /etc/pptpd.conf

Раскоментируем строки localip и remoteip в конце файла, либо добавляем новые, где localip адрес сервера в локальной сети VPN, а remoteip диапазон адресов для клиентов, которые подключаются к вашему VPN.
Пример:
localip 192.168.2.1
remoteip 192.168.2.51-58


Так-же хорошей идеей будет использование ДНС сервера, я использую сервера гугла.
Открываем файл /etc/ppp/pptpd-options.
nano /etc/ppp/pptpd-options

Ищем, раскоментируем и изменяем строки ms-dns или добавляем свои.
Пример:
ms-dns 8.8.8.8
ms-dns 8.8.4.4


Последний шаг конфигурации VPN сервера, это добавление данных для аутентификации:
echo "ИМЯ_ПОЛЬЗОВАТЕЛЯ pptpd ПАРОЛЬ *" | tee -a /etc/ppp/chap-secrets

Где, «ИМЯ_ПОЛЬЗОВАТЕЛЯ» — ваше имя пользователя, «ПАРОЛЬ» — ваш пароль.
Добавлять можно сколько угодно пользователей, не забывайте про ограничение вашим диапазоном.
Перезагружаем VPN сервер:
/etc/init.d/pptpd restart


Уже возможно подключиться к серверу, но трафик не будет перенаправлен в интернет, чтобы включить переадресацию пакетов, нужно раскоментировать строку «net.ipv4.ip_forward=1» в файле «/etc/sysctl.conf».
Перезагружаем этот конфиг.
sysctl -p

Последний шаг для включения трансляции адреса:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Эта настройка будет сбрасываться после каждой перезагрузки машины, так что нужно добавить её в автозагрузку(в файл /etc/rc.local до строки exit 0;):

Так-же, я советую настроить DynDNS, для него я использую ddclient — очень мощный пакет, который работает со многими сервисами динамических айпи-адресов.

Мой конфиг «/etc/ddclient.conf» для no-ip:
use=web
web=http://ip1.dynupdate.no-ip.com/
protocol=noip, login=LOGIN, password='PASS' HOST

Где LOGIN — ваш логин на сервисе no-ip, PASS — ваш пароль на сервисе, HOST — ваш хост.

Так, как Amazon, не использует PPP подключение, рекомендую в файле «/etc/default/ddclient» изменить строки на run_ipup и run_daemon:
run_ipup="false"
run_daemon="true"


В первый раз, запускаем ddclient вручную:
ddclient


Еще можно поменять профиль в Putty для подключения к инстансу, заменив Host Name на ваш HOST с сервиса динамических айпи-адресов.

Если вы сделали всё правильно, то теперь у вас есть свой VPN сервер, который вы можете использовать, как с мобильных платформ(Android, iOS), так и с компьютера.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх