
- Обеспечить конфиденциальность переданных и полученных данных, когда вы (ваш ноутбук, смартфон) находитесь в недоверительной сети, и существует угроза со стороны этой сети.
- Безопасно управлять сервером через Remote Desktop, ведь пароль на общий доступ к экрану обычно передается в открытом виде (исключение – удаленный рабочий стол в Mac OS X и управление им с помощью Apple Remote Desktop), из-за чего совершенно недопустимо подключаться к рабочему столу напрямую через Интернет.
- То же самое можно сказать, если вы пользуетесь классическим FTP для передачи файлов – протокол также не обеспечивает механизма безопасной аутентификации, из-за чего при возможности стараются использовать SFTP.
- Безопасно обмениваться данными как с сервером, так и с компьютерами составляющими вашу локальную (домашнюю) сеть (при условии отсутствия атаки ХПВК, Хакеры Прямо В Квартире).
Вообще говоря, VPN обеспечит вам зашифрованный виртуальный туннель между сервером и удаленной машиной, со всеми вытекающими отсюда следствиями. Если представить Internet в виде трубы, то VPN создает внутри нее трубу меньшего диаметра, доступную только для «своих».
Теперь, когда мы рассмотрели сплошные преимущества VPN, самое время познакомиться с технологией более детально, и разобраться какие разновидности VPN существуют.
На сегодняшний день существует несколько реализаций VPN:
PPTP (англ. Point-to-point tunneling protocol) – туннельный протокол типа точка-точка, позволяющий компьютеру устанавливать защищённое соединение с сервером за счёт создания специального туннеля в стандартной, незащищённой, сети. PPTP удалось добиться популярности благодаря тому что это первый VPN протокол, поддерживаемый корпорацией Microsoft. Все версии Microsoft Windows, начиная с Windows 95 OSR2, включают в свой состав PPTP-клиент. Наиболее простой в настройке вариант подключения. К сожалению, большинство интернет провайдеров по различным соображениям блокируют работу PPTP подключений. Также следует иметь ввиду, что разработчик протокола (Microsoft) рекомендует отказываться от использования PPTP в пользу более защищенного L2TP-over-IPSec, из-за уязвимостей, которые есть в PPTP. Поддержка PPTP в современных продуктах (например Windows 7, Mac OS X 10.6, iOS 4) существует лишь для совместимости с существующими продуктами и технологиями, и совершенно ничего не говорит об актуальности PPTP.
L2TP (англ. Layer 2 Tunneling Protocol) – протокол туннелирования второго (канального по модели OSI ) уровня, сочетающий в себе протокол эстафетной передачи на втором уровне (L2F) от Cisco и туннельный протокол точка-точка (PPTP) от Microsoft. По общему мнению, протокол L2TP вобрал в себя лучшие черты PPTP и L2F. Позволяет организовывать VPN с заданными приоритетами доступа, однако не содержит в себе средств шифрования и механизмов аутентификации. Поэтому, для создания защищённой VPN его используют совместно с IPSec, который предоставляет конфиденциальность, аутентификацию и целостность. По различным мнениям, является наиболее защищенным вариантом VPN подключения, несмотря на сложность настройки.
OpenVPN – свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами находящимися за NAT-firewall без необходимости изменения его настроек. Требует установки дополнительного программного обеспечения для всех ОС.
Как уже было сказано в начале статьи, мы рассмотрим установку и настройку PPTP VPN, не смотря на то, что этот тип VPN соединения считается самым небезопасным по сравнению с остальными. Тем не менее, PPTP можно считать достаточным для «личного» применения, кроме того он чрезвычайно прост в настройке, что, наверное, и обуславливает (к сожалению) его популярность. Благодаря своей простоте, PPTP будет хорошим началом для знакомства с технологиями VPN вообще.
Установка и настройка PPTP
Итак, с теоретическим вступлением разобрались, приступим непосредственно к практике. Нам нужно будет установить пакет pptpd, который и является собственно PPTP-сервером, а также несколько пакетов которые прописаны у pptpd в зависимостях (это, возможно, bcrelay). О пакетах которые прописаны в зависимостях беспокоиться не надо, они будут установлены автоматически с pptpd.Если у вас еще не установлен пакет pptpd – запускаем его установку следующей командой:
sudo apt-get install pptpd
Теперь перейдем к настройке параметров VPN-сервера, и начнем с файла /etc/ppp/pptpd-options.
Вводим в Терминале:
sudo pico /etc/ppp/pptpd-options
В этот файл можно скопировать примерно такое содержимое (вам наверняка прийдется изменить адрес ms-dns на DNS который используется в вашей сети):
# Название сервиса для аутентификации
# (должно совпадать со вторым полем в записях /etc/ppp/chap-secrets)
name pptpd
# Откажемся работать с явно ненадежными механизмами проверки пароля,
# такими как PAP, CHAP и MS CHAP v1
refuse-pap
refuse-chap
refuse-mschap
# Разрешим аутентификацию пользователей
# по самому защищенному из протоколов — MS CHAP v2:
require-mschap-v2
# Потребуем максимально возможный для PPTP
# механизм шифрованная mppe-128
require-mppe-128
# Адрес DNS-сервера, указываемого клиентам:
# (У меня это локальный адрес роутера)
ms-dns 10.0.0.1
# Включение этого параметра позволяет PPTP-клиентам работать
# с локальной сетью без добавления правил маскарадинга (NAT)
# в цепочки брандмауэра iptables. Если используются
# цепочки iptables, этот параметр следует закомментировать.
# proxyarp
# Чтобы не сбивался маршрут по умолчанию:
nodefaultroute
lock
nobsdcomp
Вот пример такого же конфигурационного файла от разработчиков, с оригинальными комментариями: http://poptop.sourceforge.net/dox/options.pptpd.txt
После этого правим файл /etc/pptpd.conf выполнив в Терминале:
sudo pico /etc/pptpd.conf
Вот как этот файл выглядит у меня:
option /etc/ppp/pptpd-options
logwtmp
localip 192.168.18.1
remoteip 192.168.18.2-254
# Включим передачу VPN-клиентам широковещательных пакетов,
# которые сервер получает по сетевому интерфейсу eth0:
bcrelay eth0
# Смотрим, чтобы было закомментировано,
# при включении данного параметра IP-адрес клиента не передается
# скриптам ip-up через демон pppd:
# noipparam
Наиболее полную русскую документацию по файлам pptpd-options и pptpd.conf вы найдете здесь: «Описание опций /etc/pptpd.conf и /etc/ppp/options.pptpd»
Затем в файл /etc/ppp/chap-secrets добавляем пользователей которые будут иметь право подключатся к VPN-сети. Набираем в Терминале:
sudo pico /etc/ppp/chap-secrets
И добавляем в этот файл информацию в таком виде:
# Secrets for authentication using CHAP
# client server secret IP addresses
andrey pptpd andrey12 *
Таким образом, мы наделили пользователя andrey с паролем andrey12 правом подключаться к нашей VPN сети. Пользователю andrey будет выдаваться первый доступный IP адрес из указанного диапазона. Если же необходимо, чтобы пользователю всегда выдавался один и тот же IP адрес, укажите желаемый IP вместо «*». Обратите внимание на название сервиса – pptpd – оно должно быть таким же, как указано в параметре name в файле /etc/ppp/pptpd-options.
С настройками VPN-сервера мы завершили, теперь нужно его перезапустить для того, чтобы изменения которые мы внесли вступили в силу. Для этого выполним в Терминале:
sudo /etc/init.d/pptpd restart
Если необходимо, чтобы для подключенных удаленных клиентов был доступен интернет через VPN, открываем /etc/rc.local и НАД ‘exit 0′ добавляем такие строки:
# PPTP IP forwarding
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
и раскомментируем эту строчку в файле /etc/sysctl.conf:
net.ipv4.ip_forward=1
В случае если ваш VPN сервер не подключен напрямую к интернету, вам скорее всего понадобится направить порт TCP-1723 и «протокол 47», он же GRE, на локальный IP адрес VPN сервера. Обратитесь к инструкции по настройке роутера чтобы выполнить необходимые шаги. Очевидно, что у сервера за роутером должен быть постоянный локальный IP, а у самого роутера – постоянный «внешний» IP, либо прийдется воспользоваться услугой «динамический DNS», но это совсем другая тема.
Перезагружаем сервер. Можно пробовать подключаться. Ваш VPN должен быть доступен с любой точки мира, где только есть интернет.
Подключение клиента с Mac OS X 10.6
Для подключения к VPN с Mac OS X 10.6, откройте «Системные Настройки», перейдите в раздел «Сеть», под списком интерфейсов нажмите внизу «+» и в появившемся окне добавления интерфейса выберите «Интерфейс: VPN», «Тип VPN: PPTP». И нажмите создать. В настройках укажите:- Доменное имя сервера VPN, или IP адрес
- Имя учетной записи (логин)
- Кодирование (шифрование канала) – выберите «Максимум (только 128 бит)»

Потом щелкните «Настройки идентификации», укажите что идентификация осуществляется посредством пароля и введите пароль.
Щелкните «Дополнительно», и установите либо снимите галочку «Отправить весь трафик через VPN». Если галочка установлена – то абсолютно весь трафик будет проходить через VPN сервер и по шифрованному каналу доставляться вам. Если галочка снята – то только трафик предназначающийся для удаленной локальной сети будет проходить через VPN канал (например, вы сможете через Remote Desktop управлять сервером), а весь остальной трафик, например получение почты и загрузка веб страниц будут осуществляться напрямую из интернета по кратчайшему маршруту. Подтвердите изменения нажав «ОК».

Теперь можно попробовать подключиться, нажав «Подключить», (см. 1-й скриншот), или выбрав нужное VPN соединение в строке меню сверху.
Подключение iPhone с iOS 4
Для подключения iPhone с операционной системой iOS 4 к PPTP VPN, откройте Настройки, перейдите в раздел «Основные», потом «Сеть». Щелкните пункт «VPN», если у вас нет VPN конфигураций, напротив него будет написано «Не настроена». Щелкните «Добавить конфигурацию VPN…». В открывшемся окне переходим на вкладку PPTP, и заполняем:- Описание – то, как будет называться данное VPN соединение
- Сервер – доменное имя или IP адрес
- Учетная запись – ваш логин
- RSA SecurID – оставляем выключенным
- Пароль – вводим свой пароль
- Шифрование – выбираем «Максимум»
- Для всех данных – либо включаем либо выключаем, руководствуясь соображениями описанными выше

Щелкните «Сохранить» вверху справа. Теперь, чтобы установить VPN подключение, откройте Настройки, и найдите первом блоке пункт «VPN». Дотроньтесь до переключателя, и процесс подключения начнется.

Диагностика подключения
PPTP обычно заводится без проблем, и при аккуратной первичной настройке работает сразу же (в отличие от более сложного L2TP-over-IPSec). И если вы, все же, испытываете проблемы с подключением, используйте следующие команды на клиенте (в рассматриваемом случае это Mac OS X) для отслеживания лога подключения в режиме реального времени:tail -f /var/log/system.log
tail -f /var/log/ppp.log
Вы должны увидеть там что-то типа такого:
May 2 21:44:59 ATT pppd[54150]: PPTP connecting to server 'server1.kaplunenko.name' (123.456.789.10)…
May 2 21:45:02 ATT pppd[54150]: PPTP connection established.
May 2 21:45:02 ATT pppd[54150]: Connect: ppp0 <--> socket[34:17]
May 2 21:45:08 ATT pppd[54150]: MPPE 128-bit stateless compression enabled
May 2 21:45:09 ATT pppd[54150]: local IP address 192.168.18.2
May 2 21:45:09 ATT pppd[54150]: remote IP address 192.168.18.1
May 2 21:45:09 ATT pppd[54150]: primary DNS address 10.0.0.1
May 2 21:45:09 ATT pppd[54150]: secondary DNS address 10.0.0.1
Если требуется включить детальное логирование на сервере, обратитесь к уже упоминавшемуся справочнику «Описание опций /etc/pptpd.conf и /etc/ppp/options.pptpd».
Дополнительно советую почитать:
«Криптоанализ туннельного протокола типа точка-точка (PPTP) от Microsoft» – Статья достаточно старая, например, механизмом MS-CHAP уже давно никто не пользуется (ведь есть MS-CHAP v.2, намного более надежный, хотя тоже очень далек от идеала), но позволяет сложить впечатление об общей схеме работы PPTP. Также, будет понятно, почему нет смысла усовершенствовать и дорабатывать PPTP, а вместо этого лучше рассмотреть альтернативные, более современные, варианты.«Cryptanalysis of Microsoft’s PPTP Authentication Extensions (MS-CHAPv2)» – Вторая статья в продолжение упомянутой выше (перевода нет, поэтому читаем на языке Шекспира), в которой рассматривается усовершенствованный PPTP с аутентификацией MS-CHAP v2 и улучшенным MPPE (шифрование канала). Именно на этом варианте остановилось развитие PPTP. Резюме статьи – MS-CHAP v2 лучше чем MS-CHAP v1, потому что авторизируется не только клиент, а клиент и сервер авторизируют друг друга, что исключает подмену сервера. Шифрование канала MPPE теперь использует разный ключ для шифрования данных от сервера к клиенту и от клиента к серверу. Явные огрехи в безопасности устранены, и теперь главная критика на PPTP направлена на то, что протокол остается пароле-зависимым, то есть он настолько безопасен, насколько безопасен пароль, выбранный пользователем.
Комментариев нет:
Отправить комментарий