Виртуальные сети, основывающиеся на технологиях VPN, применяются для различных целей и сегодня обеспечивают не только построение корпоративных сетей или защиту при пользовании общедоступными подключениями, а и выход в интернет. Кроме того, благодаря VPN доступно посещение веб-ресурсов в обход блокировкам с сохранением приватности, что в последнее время тревожит пользователей больше всего. Процесс настройки VPN для каждой системы имеет свои особенности и может выполняться в различных вариациях. В зависимости от многих факторов, в том числе целевого назначения и типа построения сети существует несколько способов реализации технологии. Мы рассмотрим, как выполняется настройка VPN на Linux, а также проясним, для чего применимо это соединение.
Что такое VPN и зачем это нужно
Для начала разберём, что представляет собой Virtual Private Network (виртуальная частная сеть) и как применим данный вид технологий. Благодаря VPN можно объединить любое число устройств в частную сеть, и обеспечить защищённый канал для передачи данных. Так, применяя подключение такого типа, пользователи могут сохранить приватность в интернете и не переживать о сохранности данных, в том числе при работе в сетях с общим доступом. Подсоединение к VPN позволяет избежать перехвата информации со стороны злоумышленников, поскольку маршрут обмена пакетами надёжно защищён шифрованием и аутентификацией пользователя. Данные шифруются на стороне отправителя и следуют по каналу связи в зашифрованном виде, а расшифровываются уже на устройстве получателя, при этом у обоих подразумевается общий ключ доступа. С применением VPN возможно создание надёжной сети поверх ненадёжной (как правило, интернета). Подключение пользователя выполняется не напрямую, а посредством сервера, соединённого с внутренней или внешней сетью. Это и обеспечивает приватность в интернете, поскольку в таком случае веб-ресурсам будет виден IP сервера, к которому подсоединён клиент. Сервер потребует прохождения процедуры идентификации, а также аутентификации и после того, как пользователь авторизован, возможна работа с сетью. Наиболее часто VPN используют в следующих случаях:
- Подключение к интернету посредством VPN нередко применимо провайдерами городских сетей, а также на предприятиях. Плюсом такого метода реализации является защищённость канала связи, поскольку возможна настройка разных ступеней безопасности. Это обеспечивается настройкой одной сети поверх другой и доступом в интернет посредством двух разных сетей.
- Внутри корпоративной сети. Объединение в одну сеть позволяет получить безопасным доступ к сети скольким угодно компьютерам сотрудников вне зависимости от их местонахождения и удаления от сервера.
- Объединение компонентов корпоративной сети. Применяя VPN для обеспечения взаимодействия различных частей предприятия, возможна организация доступа для них к отдельным ресурсам общей сети.
Реализация технологии доступна для различных устройств, операционкой которых поддерживается опция или имеется VPN-клиент, способный осуществлять проброс портов с применением TCP/IP в виртуальную сеть. Пользователь может самостоятельно выполнить все действия по настройке. Необходимость в этом возникает даже не ради цели обхода региональных блокировок, ведь для этого можно и не настраивать VPN в компьютере (для посещения заблокированных ресурсов достаточно инсталляции стороннего приложения, установки специального расширения для браузеров или использования встроенного функционала обозревателя). Настроить VPN на ПК или ноутбуке часто требуется в случае смены провайдера для настройки доступа в интернет. Настройка VPN под Linux имеет свои специфические особенности, учитывая многогранность ОС, но принцип остаётся тот же.
Настройка серверной части на Linux
Рассмотрим создание VPN сервера PPTP на платформе Ubuntu Server. С Linux достаточно легко развернуть сервер и сделать это можно даже на слабом устройстве. Наиболее просто реализовать VPN с PPTP, поскольку для воплощения не потребуется устанавливать сертификаты на устройства клиентов, а аутентификация выполняется благодаря вводу имени и пароля. Для начала потребуется инсталлировать пакеты:
sudo apt-get install pptpd
Когда пакеты для функционирования PPTP VPN установлены, следует настроить сервер. Чтобы задать диапазон адресов и выполнить прочие главные настройки, откроем файл /etc/pptpd.conf (редактируется с правами администратора):
nano /etc/pptpd.conf
Для раздачи более сотни подключений разом, находим Connections. Данный параметр должен быть раскомментирован, после чего указываем в этой строке необходимое значение количества подключений. Для отправки по VPN широковещательных пакетов раскомментировать придётся и параметр bcrelay. Далее идём в конец файла, где настроим адреса. Добавляем адрес сервера в VPN сети:
localip 10.0.0.1
Диапазон адресов для раздачи клиентам (выделяем сразу с некоторым запасом, поскольку увеличить количество, не перезапуская pptpd не получится):
remoteip 10.0.0.20-200
Если у вас имеется несколько внешних IP, можно конкретизировать, по какому из них прослушивать интерфейсы входящих PPTP:
listen внешний ip
Параметр speed позволяет задать скорость подключений (бит/с). Сохраняем и закрываем файл. Остальные параметры можно настроить в /etc/ppp/pptpd-options:
sudo nano /etc/ppp/pptpd-options
В секторе #Encryption, отвечающем за шифрование, строки, которые запрещают применение устаревших и небезопасных способов аутентификации, должны быть раскомментированы:
refuse-pap
refuse-chap
refuse-mschap
Опция proxyarp должна быть включена, она отвечает за включение поддержки сервером Proxy ARP. Опция lock позволяет разрешить (для этого комментируем) или запретить (для этого раскомментируем) пользователю множественные подключения. Сохраняемся и закрываем файл. Настройка сервера завершена, но для создания клиентов вносим соответствующие записи в /etc/ppp/chap-secrets:
sudo nano /etc/ppp/chap-secrets
Они выглядят примерно таким образом:
username1 *password12345*
username2 10.10.12.11 password345*
username3 * password787 10.10.11.21
Для каждого пользователя прописываем его имя, пароль, удалённый и локальный IP, разделяя сведения клавишей пробел. Удалённый адрес прописываем при наличии у клиента статического IP и при условии применения исключительно такового, в ином случае предпочтительно ставить звёздочку, чтобы соединение однозначно было выполнено. Локальный адрес же указываем при выделении пользователю одного и того же IP в VPN-сети. В примере выше для клиента в первом варианте соединения осуществляются с любого внешнего IP, локальный выделится первый доступный. Во втором случае – локальный будет выделен первый доступный, но подключения выполняются только с указанного адреса. В третьем – соединиться с сетью можно с любого адреса, локальный же выделится тот, который был нами прописан. Настройка серверной части VPN PPTP завершена, перезапускаем его:
sudo service pptpd restart
Само устройство в перезагрузке не нуждается.
Настройка VPN клиентов
Выполнить наладку клиентской части VPN сервера можно в любой ОС, мы же будем настраивать на Убунте. По большому счёту соединение будет работать и с параметрами, выставленными по умолчанию, но лучше указать тип подключения и выполнить некоторые другие настройки. Установка VPN на Ubuntu предполагает следующие действия:
- В меню «Система» переходим в «Параметры» и выбираем «Сетевые соединения».
- Выбираем тип соединения «Туннельный протокол точка-точка PPTP».
- Присваиваем подключению наименование или оставляем, как было предоставлено.
- В поле «Шлюз» вбиваем внешний IP сервера, прописываем имя и пароль (в правой части поля для пароля присутствует опция его сохранения для этого юзера).
- Жмём «Дополнительно» и в новом окне ставим флажок напротив пункта «Использовать шифрование MPPE» (это обязательное условие для связи с сервером).
- Теперь позакрываем окна и подключимся к нашему серверу.
Настройка сети VPN для Linux завершена, и устройства могут быть соединены локально, но для входа в интернет через VPN потребуется выполнить ещё некоторые настройки.
Настройка доступа в интернет через VPN
Когда с локальной сетью разобрались, начинаем настраивать соединение с интернетом. Для осуществления подключения в терминале прописываем такие команды:
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.1/24 -j MASQUERADE
iptables -A FORWARD -s 10.0.0.1/24 -j ACCEPT
iptables -A FORWARD -d 10.0.0.1/24 -j ACCEPT
Под 10.0.0.1/24 подразумевается локальный IP сервера и маска сети. Сохраняемся:
iptables-save
и подтверждаем новые параметры:
iptables-apply
Теперь на Linux есть возможность соединения с сетью интернет посредством VPN, а также доступны и остальные преимущества работы с виртуальной сетью. Посещаемые ресурсы увидят внешний адрес сервера, что обусловит приватность, а соединение будет надёжно защищено от хакерских атак и обеспечит безопасность передачи данных.