Самоучитель по настройке vpn серверов на ubuntu. Установка VPN в Ubuntu. Отключение от сети

Периодически некоторые активные пользователи интернета сталкиваются с необходимостью организации безопасного шифрованного анонимного соединения, часто с обязательной заменой IP-адреса на узел определенной страны. Помогает в реализации такой задачи технология под названием VPN. От юзера требуется только установить на ПК все нужные компоненты и провести подключение. После этого будет доступен выход в сеть с уже измененным сетевым адресом.

Разработчики собственных серверов и программ для VPN-соединения предоставляют услуги и для обладателей компьютеров под управлением дистрибутива Ubuntu, основанного на ядре Linux. Инсталляция не занимает много времени, а также в сети присутствует большое количество бесплатных или дешевых решений для осуществления поставленной задачи. Сегодня мы бы хотели затронуть три рабочих метода организации частного защищенного подключения в упомянутой ОС.

Способ 1: Astrill

Astrill — одна из бесплатных программ с графическим интерфейсом, которая устанавливается на ПК и автоматически заменяет сетевой адрес на случайный или специально заданный пользователем. Разработчики обещают выбор из более чем 113 серверов, защищенность и анонимность. Процедура загрузки и инсталляции достаточно простая:

  1. Перейдите на официальный сайт Astrill и выберите версию для Linux.
  2. Укажите подходящую сборку. Для обладателей одной из последних версий Ubuntu отлично подойдет DEB-пакет 64-бит. После выбора щелкните на «Скачать Astrll VPN» .
  3. Сохраните файл в удобное расположение или сразу откройте через стандартное приложение для инсталляции DEB-пакетов.
  4. Нажмите на кнопку «Установить» .
  5. Подтвердите паролем подлинность учетной записи и ожидайте завершения процедуры. С альтернативными вариантами добавления DEB-пакетов в Ubuntu знакомьтесь в другой нашей статье по ссылке ниже.
  6. Теперь программа добавлена на ваш компьютер. Осталось только запустить ее, нажав на соответствующий значок в меню.
  7. Во время загрузки вы должны были создать себе новый аккаунт, в открывшемся окне Astrill введите свои данные для выполнения входа.
  8. Укажите оптимальный сервер для соединения. При надобности выбора определенной страны воспользуйтесь строкой поиска.
  9. Данное ПО может работать с различными инструментами, позволяющими осуществлять организацию VPN-соединения в Убунту. Если не знаете, какой вариант выбрать, оставьте значение по умолчанию.
  10. Запустите сервер, переместив ползунок в положение «ON» , и переходите к работе в браузере.
  11. Заметьте, что теперь на панели задач появился новый значок. Нажатием на него открывается меню управления Astrill. Здесь доступна не только смена сервера, но и настройка дополнительных параметров.

Рассмотренный метод будет наиболее оптимальным для начинающих пользователей, которые еще не разобрались с тонкостями настройки и работе в «Терминале» операционной системы. В рамках этой статьи решение Astrill было рассмотрено только в качестве примера. На просторах интернета вы можете найти еще множество подобных программ, которые предоставляют более стабильные и быстрые серверы, но зачастую являются платными.

Кроме всего, следует отметить периодичную загруженность популярных серверов. Мы же рекомендуем осуществлять переподключение к другим источникам, находящимся по расположению максимально близко к вашей стране. Тогда пинг будет меньше, а скорость передачи и приема файлов может значительно увеличиться.

Способ 2: Системный инструмент

В Ubuntu присутствует встроенная возможность организации VPN-соединения. Однако для этого все равно придется найти один из рабочих серверов, находящихся в открытом доступе, либо же купить место через любой удобный веб-сервис, предоставляющий подобные услуги. Вся процедура подключения выглядит так:

  1. Нажмите на панели задач на кнопку «Подключение» и выберите пункт «Настройки» .
  2. Переместитесь в раздел «Сеть» , воспользовавшись меню слева.
  3. Отыщите раздел VPN и кликните на кнопку в виде плюса, чтобы перейти к созданию нового подключения.
  4. Если поставщик услуг вам предоставил файл, можете импортировать конфигурацию через него. В противном случае все данные придется водить вручную.
  5. В разделе «Идентификация» присутствуют все нужные поля. В поле «Общие» «Шлюз» вводите предоставленный IP-адрес, а в «Дополнительные» — полученное имя пользователя и пароль.
  6. Помимо этого, присутствуют еще и дополнительные параметры, но изменять их следует только по рекомендации владельца сервера.
  7. На картинке ниже вы видите примеры бесплатных серверов, которые находятся в свободном доступе. Конечно, зачастую они работают нестабильно, являются загруженными или медленными, но это лучший вариант для тех, кто не хочет платить деньги за VPN.
  8. После создания подключения остается только его активировать, передвинув соответствующий ползунок.
  9. Для аутентификации требуется ввести пароль от сервера в появившемся окне.
  10. Управлять защищенным соединением вы можете и через панель задач, щелкнув на соответствующей иконке левой кнопкой мыши.

Способ с применением стандартного инструмента хорош тем, что он не требует от пользователя инсталляции дополнительных компонентов, но все же отыскать свободный сервер придется. Кроме этого, никто не запрещает вам создать несколько соединений и переключаться между ними только в подходящий момент. Если вас заинтересовал этот метод, советуем все-таки присмотреться к платным решениям. Часто они достаточно выгодны, поскольку за небольшую сумму вы получите не только стабильный сервер, но и техническую поддержку в случае возникновения различного рода проблем.

Способ 3: Собственный сервер через OpenVPN

Некоторые компании, предоставляющие услуги шифрованного соединения, используют технологию OpenVPN и их клиенты устанавливают соответствующее программное обеспечение на свой компьютер для успешной организации защищенного туннеля. Ничто не мешает вам самостоятельно создать сервер на одном ПК и настроить клиентскую часть на других, чтобы получить тот же самый результат. Конечно, процедура настройки достаточно сложная и выполняется долго, но в некоторых случаях это будет лучшим решением. Предлагаем вам прочесть руководство по инсталляции серверной и клиентской части в Ubuntu, перейдя по следующей ссылке.

Теперь вы знакомы с тремя вариантами использования VPN на ПК под управлением Ubuntu. Каждый вариант имеет свои достоинства и недостатки и будет оптимальным в некоторых ситуациях. Мы же советуем ознакомиться со всеми ними, определиться с целью использования такого инструмента и уже переходить к выполнению инструкций.

Хотите иметь безопасный и защищённый доступ в Интернет с вашего смартфона или ноутбука при подключении к незащищённой сети через WiFi отеля или кафе? Виртуальная частная сеть (Virtual Private Network, VPN) позволяет использовать незащищённые сети таким образом, как если бы вы работали в частной сети. Весь ваш трафик в этом случае проходит через VPN-сервер.

В комбинации с использованием HTTPS-соединения описываемые далее настройки позволят вам обезопасить свою приватную информацию, например, логины и пароли, а также ваши покупки. Более того, вы сможете обходить региональные ограничения и цензуру, а также скрывать своё местонахождение и незашифрованный HTTP-трафик от незащищённой сети.

Передать профиль с компьютера на телефон можно подключив Android устройство к компьютеру через USB и скопировав файл. Вы также можете переместить файл профиля с помощью SD карты, скопировав профиль на карту и вставив карту в Android устройство.

Запустите приложение OpenVPN и нажмите на меню для импорта профиля.

Соединение

Для установки соединения нажмите кнопку Connect . Вам будет задан вопрос, доверяете ли вы приложению OpenVPN. Ответьте OK для установки соединения. Для остановки соединения зайдите в приложение OpenVPN и выберите Disconnect .

Шаг 13. Тестирование VPN соединения

После того, как всё установлено и настроено, убедимся, что всё работает правильно. Без установки соединения с VPN откройте браузер и зайдите на DNSLeakTest .

Этот сайт вернёт IP адрес, назначенный вам вашим Интернет-провайдером. Для того, чтобы проверить, какие DNS сервера используются, нажмите на Extended Test .

Теперь установите соединение, используя ваш VPN клиент и обновите страницу в браузере. Выдаваемый вам IP адрес должен быть совершенно другим. Теперь для всех в Интернете вы используете этот новый IP адрес. Нажмите Extended Test ещё раз, чтобы проверить ваши настройки DNS и убедитесь, что теперь вы используете DNS сервера вашего VPN.

Шаг 14. Отзыв клиентских сертификатов

Время от времени, вам может понадобиться отозвать клиентский сертификат для предотвращения доступа к серверу VPN&

Для этого зайдите в вашу директорию центра сертификации и введите команды:

  • cd ~/openvpn-ca
  • source vars
  • ./revoke-full client3

Вывод результатов работы этой команды будет оканчиваться ошибкой 23. Это нормально. В результате работы будет создан файл crl.pem в директории keys с необходимой для отзыва сертификата информацией.

Переместите этот файл в директорию /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

Добавьте в конец файла строку crl-verify . Сервер OpenVPN будет проверять список отозванных сертификатов каждый раз, когда кто-то устанавливает соединение с сервером.

/etc/openvpn/server.conf

Crl-verify crl.pem

Сохраните и закройте файл.

Перезапустите OpenVPN для завершения процесса отзыва сертификата:

  • sudo systemctl restart openvpn@server

Теперь клиент не сможет устанавливать соединение с сервером OpenVPN используя старый сертификат.

Для отзыва дополнительных сертификатов выполните следующие шаги:

    Сгенерируйте новый список отозванных сертификатов используя команду source vars в директории ~/openvpn-ca и выполняя команду revoke-full с именем клиента.

    Скопируйте новый список отозванных сертификатов в директорию /etc/openvpn перезаписав тем самым старый список.

    Перезапустите сервис OpenVPN.

Эта процедура может быть использована для отзыва любых созданных вами ранее сертификатов.

Заключение

Поздравляем! Теперь вы можете безопасно выходить в Интернет, весь ваш трафик защищён от прослушки цензоров и злоумышленников.

Для конфигурации дополнительных клиентов повторите шаги 6 и 11-13 для каждого нового устройства. Для отзыва доступа того или иного клиента используйте шаг 14 .

Иногда нужно получить удаленный доступ к сети предприятия, создать тоннель между серверами или предоставить доступ к Интернету хорошему соседу которого отключили от Сети за задолженность А, может быть, - просто иметь возможность получить доступ к своей сети из любого уголка мира, где есть Интернет.

Для этих целей можно использовать виртуальные частные сети (Virtual Private Network - VPN). В нашем случае, это будет самый распространенный протокол в странах СНГ, а именно - PPTP (Point-to-Point Tunneling Protocol). Многие кабельные провайдеры интернета используют именно его для предоставления услуг доступа ко .

Поднять свой сервер на Linux Ubuntu Server LTS не так уж трудно. Для этого нам понадобится доступ к Интернету и реальный IP (если нужно будет подключаться из Интернета).

Заходим на сервер, используя учетную запись root и устанавливаем необходимые пакеты командой apt-get install pptpd Нам предложат также установить пакет bcrelay, он позволяет дублировать широковещательные пакеты, принятые на входящем интерфейсе на виртуальные (PPP тоннели клиентов).

Нажимаем enter и наш сервер установлен. Приступим к конфигурации. Откроем файл nano /etс/pptpd.conf и в самом низу увидим следующие строки

#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245

Это настройки IP адресов клиентов. Раскомментируем первые две строки (удалим символ #) и немного подправим их.

Строка localip 192.168.0.1 значит, что у нашего VPN сервера будет IP 192.168.0.1 можно указать наш IP в одной из непосредственно подключенных сетей. Например, у меня в домашней сети у сервера IP адрес - 172.30.2.1 Чтобы не нагружать сервер еще и ненужной я использовал его же.

Вторая строка - remoteip 192.168.0.234-238,192.168.0.245 указывает диапазон IP адресов, которые будут присваиваться клиентам. Как видно из этих строк, сетевой адрес может быть любым (во второй группе строк). Для удобства мы выберем его из того же диапазона что и IP нашего сервера.

Я использую дома такую логику выдачи IP: 1й - роутер, 2-19 - компьютеры, 20-49 - статический VPN (при подключении выдается один и тот же адрес), 50-100 - VPN клиенты, 101-199 - Wi-Fi клиенты, 200-254 - для различных устройств (например IP роутера, телевизора и т.п). Укажем такой диапазон remoteip 172.30.2.50-100 и сохраним конфигурацию.

Перейдем в каталог cd /etс/ppp/ здесь хранятся все файлы настройки pptpd (сервер) и pppd (клиент).

Переименуем файл pptpd-options командой mv pptpd-options pptpd-options.bak и создадим его по новой nano pptpd-options Это сделано для того, чтобы легче было вставить несколько строк в новый файл, чем искать параметры среди десятков строк с комментариями. Вставим в этот новый файл такое содержимое:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
#require-mppe-128
ms-dns 172.30.2.1
nodefaultroute
lock
nobsdcomp
auth
logfile /var/log/pptpd.log

Что все это значит? Давайте по порядку:

  • Использовать имя pptpd для поиска логинов в chap-secrets
  • При указании этой опции pptpd не согласится аутентифицироваться по протоколу refuse-pap, refuse-chap, refuse-mschap
  • Требовать у партнёра аутентификации с помощью MS-CHAPv2
  • Требовать использования MPPE со 128-битным шифрованием require-mppe-128 т.е. шифровать весь трафик. Это увеличивает нагрузку на сервер и не все "слабые" устройства его поддерживают (Wi-Fi роутеры и т.п.).
  • Предложить использовать DNS сервер с IP 172.30.2.1
  • nodefaultroute - не устанавливать шлюз по умолчанию от сервера к клиенту, в противном случае, весь трафик в Интернет будет послан через подключившегося клиента, также Интернет отключится из-за потери маршрута к провайдеру.
  • Lock - блокировать сессии, т.е. с одного логина может быть только одно подключение
  • nobsdcomp - не сжимать трафик. При включении увеличивает нагрузку на наш сервер
  • auth - требовать авторизации (логин и пароль)
  • logfile /var/log/pptpd.log - писать логи работы в этот файл.

Сохраняем и закрываем этот конфигурационный файл.

Теперь нужно добавить пользователей, которые будут подключаться к нашему серверу. Откроем файл nano chap-secrets (он используется для хранения учетных записей PPP).

Для корректной работы нужно соблюдать такой формат: колонки должны быть разделены хотя бы одним пробелом или табом (Tab), не допускается использование пробелов в именах (иначе пробел рассматривается как следующая колонка), логин должен начинаться на букву. Например:

Первая колонка - это логин пользователя, вторая - имя сервиса. В нашем случае это pptpd. Далее - пароль пользователя, последняя - IP адрес, который будет выдан. Причем, если стоит * то IP адрес будет выдан из заданного ранее диапазона автоматически. Также в качестве IP можно указать адрес, который может быть за пределами диапазона.

Перед тем, как использовать сервер, нужно его перезапустить. Для этого выполним /etс/init.d/pptpd restart если в конфигурации нет ошибок, сервер будет запущен.

rоot@CoolServ:/etс/ppp# /etс/init.d/pptpd restart
Restarting PPTP:
Stopping PPTP: pptpd.
Starting PPTP Daemon: pptpd.

Если вы используете ) в него нужно добавить такие строки:

# VPN - PPTPD
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT

Для предоставления доступа к Интернету VPN клиентам через наш сервер нужно дописать такое правило в IPTables:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Где eth1 - интерфейс в сторону Интернета.

Для проверки можно создать тестовое подключение VPN с отключенным шифрованием (не обязательным) и используя любой указанный логин подключиться к серверу.

Частые ошибки при подключении

Чтобы создать клиентское подключение PPTP из Windows XP выполняем следующие пункты: нажимаем "Пуск" - "Панель управления" - "Сеть и подключения к интернету" - "Сетевые подключения".


Жмем на "Создание нового подключения" - это запустит "Мастер новых подключений".







Теперь вписываем название подключения. Здесь можно написать что угодно, это будет просто названием подключения, для примера мы напишем "PPTP" (по типу соединения).



Может появиться следующий вопрос «Использовать настроенные подключения к Интернету?» (Если у Вас уже настроено подключение PPPoE), в нем нажимаем "Не набирать номер".



Если такое сообщение не появилось, читаем далее.

Теперь у Вас попросят ввести адрес сервера, указываем IP вашего сервера или его имя.




В окне, показанном на фото выше, выбираем "Свойства". Появится окошко в котором выбираем вкладку "Безопасность". Находим в нем пункт "Требуется шифрование данных" и убираем галочку. в противном случае мы не сможем подключиться, будут появляться ошибки 741 или 742 - «требуемый тип шифрования не поддерживается сервером».


После этого нажимаем кнопку «ОК», возвращаемся в предыдущее окно, вводим логин, пароль и подключаемся к нашему удаленному серверу по защищенному VPN каналу!

If ($answer_counter == 1): ?> endif; ?>

ОБНОВЛЕНИЕ . Что касается Sierra, macOS больше не поддерживает PPTP vpn. Этот ответ недействителен для клиентов macOS Sierra и других.

PPTP через PoPToP легко

  1. apt-get install pptpd
  2. отредактируйте /etc/pptpd.conf и установите для параметра remoteip значение в вашей сети, которое НЕ обслуживается вашим сервером DHCP.
  3. отредактируйте /etc/ppp/chap-secrets и добавьте имя пользователя и пароль

например.

Vpnuser pptpd vpnpassword *

Это все, что нужно для установки pptp. Теперь протестируйте его со своим клиентом OS X.

Ответ дан Jay _silly_evarlast_ Wren 06.04.2012 в 23:24

WARNING: PPTP IS AN INSECURE PROTOCOL! Not only has the encryption been breached, but it sends your authentication in clear text and is easily intercepted. It has been estimated that the amount of time required to brute-force the password is roughly equivalent to the time required to brute-force a single DES key. Consider using OpenVPN or another VPN architecture instead of PPTP!

Ответ дан Qasim 10.06.2013 в 16:09

Другие ответы на эту тему были лишь частичными ответами в моем случае. Вот что сработало для меня на Ubuntu 12.04.3

Sudo apt-get install pptpd

Добавить в /etc/pptpd.conf следующее: (IP-адрес не имеет значения, это только IP-адреса для вашего интерфейса ppp0.)

Localip 10.0.0.1 remoteip 10.0.0.100-200

Добавить DNS-серверы в / etc / ppp / pptpd-options

Ms-dns 8.8.8.8 ms-dns 8.8.4.4

Включить переадресацию IP-адресов

sudo vim /etc/sysctl.conf

Раскомментировать эту строку

Sudo sysctl -p /etc/sysctl.conf

Измените / etc / ppp / chap-secrets, добавьте пользователя VPN в этом формате:

# Secrets for authentication using CHAP # client server secret IP addresses username pptpd supersecretpassword *

Перезапустить PPTP

Service pptpd restart

Запустите ifconfig и найдите свой интерфейс по умолчанию, в моем случае это был br0 (я изменил его, чтобы позволить виртуальным машинам на моей физической машине обмениваться интерфейсом. Вероятно, это будет en0 )

Резервное копирование iptables

Iptables-save > ~/iptables.save

Теперь сделайте, чтобы изменения iptables использовали свой интерфейс по умолчанию, как показано ifconfig.

Настройка VPN-соединения в Debian

Здесь представлен пример настройки VPN-подключения для Debian Linux через командную строку. Но не менее полезна она будет обладателям дистрибутивов, основанных на Debian, например, Ubuntu.

  1. Для начала Вам понадобится пакет pptp:
    # apt-get install pptp-linux
  2. Редактируем (или создаем, если его нет) файл /etc/ppp/options.pptp. В нем должны быть следующие параметры:
    lock
    noauth
    nobsdcomp
    nodeflate
  3. Далее вам необходимо добавить в файл /etc/ppp/chap-secrets строку вида:
    “имя пользователя” PPTP “пароль” *
  4. Создайте файл /etc/ppp/peers/XXX (XXX - название сети). В него впишите следующее:
    pty "pptp vpn.XXX.ru --nolaunchpppd"
    name “имя пользователя”
    remotename PPTP
    file /etc/ppp/options.pptp
    defaultroute
    “имя пользователя” и “пароль” необходимо заменить Вашими именем пользователя и паролем без кавычек, так, как указанно в Вашем договоре. vpn.XXX.ru - адрес vpn-сервера - узнаете у провайдера.
  5. Для автоматической замены дефолтного роута создаем файл /etc/ppp/ip-up.d/routes-up:
    # su touch /etc/ppp/ip-up.d/routes-up
    # su chown a+x /etc/ppp/ip-up.d/routes-up

    И вписываем в него следующее:
    #!/bin/sh
    /sbin/route del default
    /sbin/route add default dev ppp0
    Создаем файл /etc/ppp/ip-down.d/routes-down:
    # su touch /etc/ppp/ip-down.d/routes-down
    # su chown a+x /etc/ppp/ip-down.d/routes-down
    И вписываем в него следующее:
    #!/bin/sh
    /sbin/route del default
    /sbin/route add default dev eth0

  6. Теперь можете подключаться командой:
    # su pon XXX
    Для подробного вывода информации о процессе подключения наберите:
    # su pon XXX debug dump logfd 2 nodetach
    Проверить подключены ли вы к VPN можно набрав команду ifconfig. Если в ее выводе есть секция ppp0, то вы подключены и можете начинать работу с Интернетом. Для отключения нажмите ctrl+c, либо наберите:
    # su poff XXX
  7. Для того, что ваш компьютер получал роуты от нашего сервера, в файле /etc/dhcp3/dhclient.conf должны присутствовать такие строки:
    #
    option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
    option ms-classless-static-routes code 249 = array of unsigned integer 8;
    #
    request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, static-route, rfc3442-classless-static-routes, ms-classless-static-routes;
    #
  8. Для автоматического подключения к интернету при загрузке операционной системы создадим файл/etc/init.d/XXX
    # touch /etc/init.d/XXX
    # su chown a+x /etc/init.d/XXX
    # su ln -s /etc/init.d/XXX /etc/rc2.d/S99XXX
    Впишем него следующее:
    #!/bin/sh
    su /usr/bin/pon XXX

Во всех командах XXX - это название вашей сети.